github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/util/slice/array.go (about)

     1  /*
     2  Package slice contains byte slice helpers.
     3  */
     4  package slice
     5  
     6  // CopyReverse returns a new byte slice containing reversed version of the
     7  // original.
     8  func CopyReverse(b []byte) []byte {
     9  	dest := make([]byte, len(b))
    10  	reverse(dest, b)
    11  	return dest
    12  }
    13  
    14  // Reverse does in-place reversing of byte slice.
    15  func Reverse(b []byte) {
    16  	reverse(b, b)
    17  }
    18  
    19  func reverse(dst []byte, src []byte) {
    20  	for i, j := 0, len(src)-1; i <= j; i, j = i+1, j-1 {
    21  		dst[i], dst[j] = src[j], src[i]
    22  	}
    23  }
    24  
    25  // Clean wipes the data in b by filling it with zeros.
    26  func Clean(b []byte) {
    27  	for i := range b {
    28  		b[i] = 0
    29  	}
    30  }