github.com/safing/portbase@v0.19.5/container/doc.go (about)

     1  // Package container gives you a []byte slice on steroids, allowing for quick data appending, prepending and fetching as well as transparent error transportation.
     2  //
     3  // A Container is basically a [][]byte slice that just appends new []byte slices and only copies things around when necessary.
     4  //
     5  // Byte slices added to the Container are not changed or appended, to not corrupt any other data that may be before and after the given slice.
     6  // If interested, consider the following example to understand why this is important:
     7  //
     8  //	package main
     9  //
    10  //	import (
    11  //		"fmt"
    12  //	)
    13  //
    14  //	func main() {
    15  //		a := []byte{0, 1,2,3,4,5,6,7,8,9}
    16  //		fmt.Printf("a: %+v\n", a)
    17  //		fmt.Printf("\nmaking changes...\n(we are not changing a directly)\n\n")
    18  //		b := a[2:6]
    19  //		c := append(b, 10, 11)
    20  //		fmt.Printf("b: %+v\n", b)
    21  //		fmt.Printf("c: %+v\n", c)
    22  //		fmt.Printf("a: %+v\n", a)
    23  //	}
    24  //
    25  // run it here: https://play.golang.org/p/xu1BXT3QYeE
    26  package container