Skip to content

module IO::ByteFormat

Defines a byte format to encode integers and floats from/to Bytes and IO.

Decode from bytes

bytes = Bytes[0x34, 0x12]
int16 = IO::ByteFormat::LittleEndian.decode(Int16, bytes)
int16 # => 0x1234_i16

Decode from an IO

io = IO::Memory.new(Bytes[0x34, 0x12])
int16 = io.read_bytes(Int16, IO::ByteFormat::LittleEndian)
int16 # => 0x1234_i16

Encode to bytes

raw = uninitialized UInt8[2]
IO::ByteFormat::LittleEndian.encode(0x1234_i16, raw.to_slice)
raw # => StaticArray[0x34, 0x12]

Encode to IO

io = IO::Memory.new
io.write_bytes(0x1234_i16, IO::ByteFormat::LittleEndian)
io.to_slice # => Bytes[0x34, 0x12]

Methods

abstract #decode(int : Int8.class, io : IO)

View source

abstract #decode(int : UInt8.class, io : IO)

View source

abstract #decode(int : Int16.class, io : IO)

View source

abstract #decode(int : UInt16.class, io : IO)

View source

abstract #decode(int : Int32.class, io : IO)

View source

abstract #decode(int : UInt32.class, io : IO)

View source

abstract #decode(int : Int64.class, io : IO)

View source

abstract #decode(int : UInt64.class, io : IO)

View source

abstract #decode(int : Int128.class, io : IO)

View source

abstract #decode(int : UInt128.class, io : IO)

View source

abstract #decode(int : Int8.class, bytes : Bytes)

View source

abstract #decode(int : UInt8.class, bytes : Bytes)

View source

abstract #decode(int : Int16.class, bytes : Bytes)

View source

abstract #decode(int : UInt16.class, bytes : Bytes)

View source

abstract #decode(int : Int32.class, bytes : Bytes)

View source

abstract #decode(int : UInt32.class, bytes : Bytes)

View source

abstract #decode(int : Int64.class, bytes : Bytes)

View source

abstract #decode(int : UInt64.class, bytes : Bytes)

View source

abstract #decode(int : Int128.class, bytes : Bytes)

View source

abstract #decode(int : UInt128.class, bytes : Bytes)

View source

#decode(type : Float32.class, io : IO)

View source

#decode(type : Float32.class, bytes : Bytes)

View source

#decode(type : Float64.class, io : IO)

View source

#decode(type : Float64.class, bytes : Bytes)

View source

#encode(float : Float64, bytes : Bytes)

View source

abstract #encode(int : UInt8, io : IO)

View source

abstract #encode(int : Int16, io : IO)

View source

abstract #encode(int : UInt16, io : IO)

View source

abstract #encode(int : Int32, io : IO)

View source

abstract #encode(int : UInt32, io : IO)

View source

abstract #encode(int : Int64, io : IO)

View source

abstract #encode(int : UInt64, io : IO)

View source

abstract #encode(int : Int128, io : IO)

View source

abstract #encode(int : UInt128, io : IO)

View source

abstract #encode(int : Int8, bytes : Bytes)

View source

abstract #encode(int : UInt8, bytes : Bytes)

View source

abstract #encode(int : Int16, bytes : Bytes)

View source

abstract #encode(int : UInt16, bytes : Bytes)

View source

abstract #encode(int : Int32, bytes : Bytes)

View source

abstract #encode(int : UInt32, bytes : Bytes)

View source

abstract #encode(int : Int64, bytes : Bytes)

View source

abstract #encode(int : UInt64, bytes : Bytes)

View source

abstract #encode(int : Int128, bytes : Bytes)

View source

abstract #encode(int : UInt128, bytes : Bytes)

View source

#encode(float : Float32, io : IO)

View source

#encode(float : Float32, bytes : Bytes)

View source

#encode(float : Float64, io : IO)

View source

abstract #encode(int : Int8, io : IO)

View source