PoolByteArray

    An array specifically designed to hold bytes. Optimized for memory usage, does not fragment the memory.

    Note: This type is passed by value and not by reference. This means that when mutating a class property of type or mutating a PoolByteArray within an or Dictionary, changes will be lost:

    Instead, the entire PoolByteArray property must be reassigned with = for it to be changed:

    • PoolByteArray ( Array from )

    • void append ( byte )

    Appends an element at the end of the array (alias of push_back).


    • void append_array ( array )

    Appends a PoolByteArray at the end of this array.


    Returns a new PoolByteArray with the data compressed. Set the compression mode using one of CompressionMode‘s constants.


    • count ( int value )

    Returns the number of times an element is in the array.


    Returns a new with the data decompressed. Set buffer_size to the size of the uncompressed data. Set the compression mode using one of ‘s constants.


    Returns a new PoolByteArray with the data decompressed. Set the compression mode using one of ‘s constants. This method only accepts gzip and deflate compression modes.

    This method is potentially slower than decompress, as it may have to re-allocate its output buffer multiple times while decompressing, where as decompress knows its output buffer size from the beginning.

    GZIP has a maximal compression ratio of 1032:1, meaning it’s very possible for a small compressed payload to decompress to a potentially very large output. To guard against this, you may provide a maximum size this function is allowed to allocate in bytes via max_output_size. Passing -1 will allow for unbounded output. If any positive value is passed, and the decompression exceeds that amount in bytes, then an error will be returned.


    Returns true if the array is empty.


    • void fill ( byte )

    Assigns the given value to all elements in the array. This can typically be used together with resize to create an array with a given size and initialized elements.


    • find ( int value, from=0 )

    Searches the array for a value and returns its index or if not found. Optionally, the initial search index can be passed. Returns -1 if from is out of bounds.


    • String get_string_from_ascii ( )

    Returns a copy of the array’s contents as . Fast alternative to get_string_from_utf8 if the content is ASCII-only. Unlike the UTF-8 function this function maps every byte to a character in the array. Multibyte sequences will not be interpreted correctly. For parsing user input always use .


    • String get_string_from_utf8 ( )

    Returns a copy of the array’s contents as . Slower than get_string_from_ascii but supports UTF-8 encoded data. Use this function if you are unsure about the source of the data. For user input this function should always be preferred.


    • has ( int value )

    Returns true if the array contains the given value.

    Note: This is equivalent to using the in operator.


    • hex_encode ( )

    Returns a hexadecimal representation of this array as a String.


    Inserts a new element at a given position in the array. The position must be valid, or at the end of the array (idx == size()).


    • void invert ( )

    Reverses the order of the elements in the array.


    • void push_back ( byte )

    Appends an element at the end of the array.


    • void remove ( int idx )

    Removes an element from the array by index.


    • void resize ( idx )

    Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size.

    Note: Added elements are not automatically initialized to 0 and will contain garbage, i.e. indeterminate values.


    • int rfind ( value, int from=-1 )

    Searches the array in reverse order. Optionally, a start search index can be passed. If negative, the start index is considered relative to the end of the array. If the adjusted start index is out of bounds, this method searches from the end of the array.


    • void set ( idx, int byte )

    Changes the byte at the given index.


    • size ( )

    Returns the number of elements in the array.


    • void sort ( )

    Returns the slice of the PoolByteArray between indices (inclusive) as a new . Any negative index is considered to be from the end of the array.