module IO::ByteFormat

Overview

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]

Defined in:

io/byte_format.cr

Instance Method Summary

Instance Method Detail

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

[View source]
abstract def decode(int : UInt8.class, io : IO) #

[View source]
abstract def decode(int : Int16.class, io : IO) #

[View source]
abstract def decode(int : UInt16.class, io : IO) #

[View source]
abstract def decode(int : Int32.class, io : IO) #

[View source]
abstract def decode(int : UInt32.class, io : IO) #

[View source]
abstract def decode(int : Int64.class, io : IO) #

[View source]
abstract def decode(int : UInt64.class, io : IO) #

[View source]
def decode(type : Float32.class, io : IO) #

[View source]
def decode(type : Float64.class, io : IO) #

[View source]
abstract def decode(int : Int8.class, bytes : Bytes) #

[View source]
abstract def decode(int : UInt8.class, bytes : Bytes) #

[View source]
abstract def decode(int : Int16.class, bytes : Bytes) #

[View source]
abstract def decode(int : UInt16.class, bytes : Bytes) #

[View source]
abstract def decode(int : Int32.class, bytes : Bytes) #

[View source]
abstract def decode(int : UInt32.class, bytes : Bytes) #

[View source]
abstract def decode(int : Int64.class, bytes : Bytes) #

[View source]
abstract def decode(int : UInt64.class, bytes : Bytes) #

[View source]
def decode(type : Float32.class, bytes : Bytes) #

[View source]
def decode(type : Float64.class, bytes : Bytes) #

[View source]
def encode(float : Float64, bytes : Bytes) #

[View source]
abstract def encode(int : UInt8, io : IO) #

[View source]
abstract def encode(int : Int16, io : IO) #

[View source]
abstract def encode(int : UInt16, io : IO) #

[View source]
abstract def encode(int : Int32, io : IO) #

[View source]
abstract def encode(int : UInt32, io : IO) #

[View source]
abstract def encode(int : Int64, io : IO) #

[View source]
abstract def encode(int : UInt64, io : IO) #

[View source]
def encode(float : Float32, io : IO) #

[View source]
def encode(float : Float64, io : IO) #

[View source]
abstract def encode(int : Int8, bytes : Bytes) #

[View source]
abstract def encode(int : UInt8, bytes : Bytes) #

[View source]
abstract def encode(int : Int16, bytes : Bytes) #

[View source]
abstract def encode(int : UInt16, bytes : Bytes) #

[View source]
abstract def encode(int : Int32, bytes : Bytes) #

[View source]
abstract def encode(int : UInt32, bytes : Bytes) #

[View source]
abstract def encode(int : Int64, bytes : Bytes) #

[View source]
abstract def encode(int : UInt64, bytes : Bytes) #

[View source]
def encode(float : Float32, bytes : Bytes) #

[View source]
abstract def encode(int : Int8, io : IO) #

[View source]