runtimepy.primitives.serializable package#

Submodules#

runtimepy.primitives.serializable.base module#

A module defining a base interface fore serializable objects.

class runtimepy.primitives.serializable.base.Serializable(byte_order: ByteOrder = ByteOrder.NETWORK, chain: T = None)[source]#

Bases: ABC

An interface for serializable objects.

add_to_end(chain: T, array_length: int = None) int[source]#

Add a new serializable to the end of this chain.

assign(chain: T) int[source]#

Assign a next serializable.

copy() T[source]#

Create a copy of a serializable instance.

copy_without_chain() T[source]#

A method for copying instances without chain references.

property end: Serializable#

Get the end of this chain.

from_stream(stream: BinaryIO) int[source]#

Update this serializable from a stream.

length() int[source]#

Get the full length of this chain.

length_trace() str[source]#

Get a length-tracing string for this instance.

size: int#
to_stream(stream: BinaryIO) int[source]#

Write this serializable to a stream.

abstract update(data: bytes) int[source]#

Update this serializable from a bytes instance.

update_str(data: str) int[source]#

Update this serializable from string data.

runtimepy.primitives.serializable.fixed module#

A module implementing a fixed-size bytes serializable.

class runtimepy.primitives.serializable.fixed.FixedChunk(data: bytes, chain: Serializable = None)[source]#

Bases: Serializable

A simple fixed-size serializable chunk.

update(data: bytes) int[source]#

Update this serializable from a bytes instance.

runtimepy.primitives.serializable.prefixed module#

A module implementing a variable-size bytes serializable, using an integer primitive prefix to determine the size of the chunk portion.

class runtimepy.primitives.serializable.prefixed.PrefixedChunk(prefix: Uint8Primitive | Uint16Primitive | Uint32Primitive | Uint64Primitive, byte_order: ByteOrder = ByteOrder.NETWORK, chain: Serializable = None)[source]#

Bases: Serializable

A simple integer-prefixed chunk serializable.

classmethod create(prefix: type[Int8Primitive | Int16Primitive | Int32Primitive | Int64Primitive | Uint8Primitive | Uint16Primitive | Uint32Primitive | Uint64Primitive | HalfPrimitive | FloatPrimitive | DoublePrimitive | BooleanPrimitive] | str = 'uint16', chain: Serializable = None) T[source]#

Create a prefixed chunk.

update(data: bytes) int[source]#

Update this serializable from a bytes instance.

Module contents#

A module defining an interface for serializable objects.

class runtimepy.primitives.serializable.FixedChunk(data: bytes, chain: Serializable = None)[source]#

Bases: Serializable

A simple fixed-size serializable chunk.

update(data: bytes) int[source]#

Update this serializable from a bytes instance.

class runtimepy.primitives.serializable.PrefixedChunk(prefix: Uint8Primitive | Uint16Primitive | Uint32Primitive | Uint64Primitive, byte_order: ByteOrder = ByteOrder.NETWORK, chain: Serializable = None)[source]#

Bases: Serializable

A simple integer-prefixed chunk serializable.

classmethod create(prefix: type[Int8Primitive | Int16Primitive | Int32Primitive | Int64Primitive | Uint8Primitive | Uint16Primitive | Uint32Primitive | Uint64Primitive | HalfPrimitive | FloatPrimitive | DoublePrimitive | BooleanPrimitive] | str = 'uint16', chain: Serializable = None) T[source]#

Create a prefixed chunk.

update(data: bytes) int[source]#

Update this serializable from a bytes instance.

class runtimepy.primitives.serializable.Serializable(byte_order: ByteOrder = ByteOrder.NETWORK, chain: T = None)[source]#

Bases: ABC

An interface for serializable objects.

add_to_end(chain: T, array_length: int = None) int[source]#

Add a new serializable to the end of this chain.

assign(chain: T) int[source]#

Assign a next serializable.

copy() T[source]#

Create a copy of a serializable instance.

copy_without_chain() T[source]#

A method for copying instances without chain references.

property end: Serializable#

Get the end of this chain.

from_stream(stream: BinaryIO) int[source]#

Update this serializable from a stream.

length() int[source]#

Get the full length of this chain.

length_trace() str[source]#

Get a length-tracing string for this instance.

size: int#
to_stream(stream: BinaryIO) int[source]#

Write this serializable to a stream.

abstract update(data: bytes) int[source]#

Update this serializable from a bytes instance.

update_str(data: str) int[source]#

Update this serializable from string data.