class Ronin::Support::Binary::Buffer

Represents a binary buffer of data.

## Examples

Writing bytes into an empty buffer:

buffer = Binary::Buffer.new(10)
# => #<Ronin::Support::Binary::Buffer: "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00">
buffer[0] = 0x41
buffer[1] = 0x42
buffer[2] = 0x43
buffer.to_s
# => "ABC\x00\x00\x00\x00\x00\x00\x00"

Writing different types of data to a buffer:

buffer = Binary::Buffer.new(16)
# => #<Ronin::Support::Binary::Buffer: "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00">
buffer.put_uint32(0,0x11223344)
buffer.put_int32(4,-1)
buffer.put_string(8,"ABC")
buffer.put_float32(12,0.5)
buffer.to_s
# => "D3\"\x11\xFF\xFF\xFF\xFFABC\x00\x00\x00\x00?"

Creating a buffer from an existing String:

buffer = Binary::Buffer.new("\x41\x00\x00\x00\x42\x00\x00\x00")
# => #<Ronin::Support::Binary::Buffer: "A\u0000\u0000\u0000B\u0000\u0000\u0000">
buffer.get_uint32(0)
# => 65
buffer.get_uint32(4)
# => 66

@api public

@since 1.0.0