The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Clownfish::ByteBuf - Growable buffer holding arbitrary bytes.

SYNOPSIS

    my $buf = Clownfish::ByteBuf->new($byte_string);
    my $byte_string = $buf->to_perl;

DESCRIPTION

CONSTRUCTORS

new

    my $buf = Clownfish::ByteBuf->new($byte_string);

Create a ByteBuf containing the passed-in bytes.

METHODS

set_size

    $byte_buf->set_size($size);

Resize the ByteBuf to size. If greater than the object’s capacity, throws an error.

get_size

    my $int = $byte_buf->get_size();

Return the size of the ByteBuf in bytes.

get_capacity

    my $int = $byte_buf->get_capacity();

Return the number of bytes in the ByteBuf’s allocation.

cat

    $byte_buf->cat($blob);

Concatenate the contents of Blob blob onto the end of the original ByteBuf. Allocate more memory as needed.

yield_blob

    my $blob = $byte_buf->yield_blob();

Return the content of the ByteBuf as Blob and clear the ByteBuf.

utf8_to_string

    my $string = $byte_buf->utf8_to_string();

Return a String which holds a copy of the UTF-8 character data in the ByteBuf after checking for validity.

trusted_utf8_to_string

    my $string = $byte_buf->trusted_utf8_to_string();

Return a String which holds a copy of the UTF-8 character data in the ByteBuf, skipping validity checks.

compare_to

    my $int = $byte_buf->compare_to($other);

Indicate whether one ByteBuf is less than, equal to, or greater than another. The byte contents of the ByteBufs are compared lexicographically. Throws an exception if other is not a ByteBuf.

Returns: 0 if the ByteBufs are equal, a negative number if self is less than other, and a positive number if self is greater than other.

clone

    my $result = $byte_buf->clone();

Return a clone of the object.

INHERITANCE

Clownfish::ByteBuf isa Clownfish::Obj.