summaryrefslogtreecommitdiff
path: root/unsorted/eina/EinaBinbuf01.cs
blob: 395616879da5a364cd199f283b946d219b18c6df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using static System.Console;

public class ExampleEinaBinbuf01
{
    public static void Main()
    {
        eina.Config.Init();

        var bytes = new byte[]{0, 1, 2, 3, 4, 5, 6};

        var bb = new eina.Binbuf();

        // Append initial bytes
        bb.Append(bytes);

        WriteLine("Printing each byte.");

        int idx = 0;
        foreach (byte b in bb.GetBytes())
        {
            WriteLine($"byte at[{idx}]: {b}");
            ++idx;
        }

        // Append more byte by byte
        bb.Append((byte) 7);
        bb.Append((byte) 8);
        bb.Append((byte) 9);
        bb.Append((byte) 0);

        WriteLine("\nPrinting each byte.");

        idx = 0;
        foreach (byte b in bb.GetBytes())
        {
            WriteLine($"byte at[{idx}]: {b}");
            ++idx;
        }

        // Remove some
        bb.Remove(2, 5);

        WriteLine("\nPrinting each byte.");

        idx = 0;
        foreach (byte b in bb.GetBytes())
        {
            WriteLine($"byte at[{idx}]: {b}");
            ++idx;
        }

        // Insert new bytes in the middle
        bb.Insert(new byte[]{22, 33, 44}, 2);

        WriteLine("\nPrinting each byte.");

        idx = 0;
        foreach (byte b in bb.GetBytes())
        {
            WriteLine($"byte at[{idx}]: {b}");
            ++idx;
        }
    }
}