Sign in

    chgttyyr/moon_dns/src/bytes_io does not have a README file

    ByteReader

    pub(all) struct ByteReader {
    bytes : Bytes
    cursor : Int
    } derive(
    Debug
    )

    ByteReader provides safe, bounds-checked big-endian binary stream reading.

    ByteReader::from_offset

    fn ByteReader::from_offset(bytes : Bytes, offset : Int) -> Result[ByteReader,
    DnsError
    ]

    Create a ByteReader starting at a specific offset

    ByteReader::has_remaining

    fn ByteReader::has_remaining(self : ByteReader, n : Int) -> Bool

    Check if buffer has at least n remaining bytes

    ByteReader::new

    fn ByteReader::new(bytes : Bytes) -> ByteReader

    Create a new ByteReader starting at position 0

    ByteReader::peek_byte

    Peek at the current byte without advancing the cursor

    ByteReader::position

    fn ByteReader::position(self : ByteReader) -> Int

    Current read cursor position (0-indexed)

    ByteReader::read_byte

    Read a single byte and advance cursor

    ByteReader::read_bytes

    fn ByteReader::read_bytes(self : ByteReader, len : Int) -> Result[Bytes,
    DnsError
    ]

    Read a fixed number of bytes into a new Bytes instance

    ByteReader::read_uint16

    fn ByteReader::read_uint16(self : ByteReader) -> Result[UInt16,
    DnsError
    ]

    Read a big-endian 16-bit unsigned integer and advance cursor by 2

    ByteReader::read_uint32

    Read a big-endian 32-bit unsigned integer and advance cursor by 4

    ByteReader::remaining

    fn ByteReader::remaining(self : ByteReader) -> Int

    Number of remaining unread bytes in buffer

    ByteReader::set_position

    fn ByteReader::set_position(self : ByteReader, pos : Int) -> Result[Unit,
    DnsError
    ]

    Reposition the read cursor safely

    ByteReader::skip

    fn ByteReader::skip(self : ByteReader, n : Int) -> Result[Unit,
    DnsError
    ]

    Advance cursor by n bytes without reading

    ByteReader::sub_slice

    fn ByteReader::sub_slice(self : ByteReader, start : Int, len : Int) -> Result[Bytes,
    DnsError
    ]

    Extract a subslice without moving the primary cursor

    ByteReader::total_length

    fn ByteReader::total_length(self : ByteReader) -> Int

    Total length of the underlying bytes

    ByteWriter

    pub(all) struct ByteWriter {
    buf : Array[Byte]
    } derive(
    Debug
    )

    ByteWriter provides dynamic, expandable big-endian binary stream writing.

    ByteWriter::clear

    fn ByteWriter::clear(self : ByteWriter) -> Unit

    Clear the internal buffer

    ByteWriter::length

    fn ByteWriter::length(self : ByteWriter) -> Int

    Current length of accumulated bytes

    ByteWriter::new

    fn ByteWriter::new() -> ByteWriter

    Create an empty ByteWriter

    ByteWriter::patch_uint16

    fn ByteWriter::patch_uint16(self : ByteWriter, pos : Int, val : UInt16) -> Result[Unit,
    DnsError
    ]

    Overwrite a 16-bit unsigned integer at a previously written position (patching)

    ByteWriter::to_bytes

    fn ByteWriter::to_bytes(self : ByteWriter) -> Bytes

    Convert internal buffer to immutable Bytes

    ByteWriter::write_byte

    fn ByteWriter::write_byte(self : ByteWriter, b : Byte) -> Unit

    Write a single byte

    ByteWriter::write_bytes

    fn ByteWriter::write_bytes(self : ByteWriter, bytes : Bytes) -> Unit

    Write an entire Bytes sequence

    ByteWriter::write_fixed_bytes

    fn ByteWriter::write_fixed_bytes(self : ByteWriter, bytes : FixedArray[Byte]) -> Unit

    Write a FixedArray of bytes

    ByteWriter::write_uint16

    fn ByteWriter::write_uint16(self : ByteWriter, val : UInt16) -> Unit

    Write a big-endian 16-bit unsigned integer

    ByteWriter::write_uint32

    fn ByteWriter::write_uint32(self : ByteWriter, val : UInt) -> Unit

    Write a big-endian 32-bit unsigned integer

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io