jam.utils.codec.primitives.nulls module

Null codec implementation for JAM protocol.

Implements encoding and decoding of null values according to the JAM specification. Null values are encoded as an empty byte sequence.

class jam.utils.codec.primitives.nulls.NullCodec[source]

Bases: Codec[None]

Codec for null values.

Null values are encoded as empty byte sequences. This is the simplest possible codec as it doesn’t actually write any bytes.

Examples

>>> codec = NullCodec()
>>> encoded = codec.encode(None)
>>> assert encoded == b""
>>> decoded, size = codec.decode_from(b"")
>>> assert decoded is None
>>> assert size == 0
encode_size(value: None) int[source]

Calculate encoded size for null value.

Parameters:

value – Must be None

Returns:

Always returns 0

Raises:

EncodeError – If value is not None

encode_into(value: None, buffer: bytearray, offset: int = 0) int[source]

Encode a null value into the provided buffer.

Parameters:
  • value – Must be None

  • buffer – Destination buffer

  • offset – Starting position in buffer

Returns:

Always returns 0

Raises:

EncodeError – If value is not None

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[None, int][source]

Decode a null value from the provided buffer.

Parameters:
  • buffer – Source buffer

  • offset – Starting position in buffer

Returns:

Tuple of (None, 0)