logos.lang.fabric

Module lang · package logos-lang

Traits

traitBorrowedStorage

trait BorrowedStorage

Marker for read-only, non-owning storage views; no drop, no grow, safe to discard.

traitContainer

trait Container

A Datatype paired with its canonical DynamicStorage, as used by Buffer<DT>.

Implemented by: DT DT StrDt DView

traitContainerOrd

trait ContainerOrd

Container with 3-way comparison of stored views, for ordered collections (Map, Set).

Implemented by: DT DT DView

traitDatatype

trait Datatype

Describes how to interpret bytes held by a Storage: View<S> is the processing form.

Implemented by: DT DT WritString StrDt DView

traitDynamicStorage

trait DynamicStorage

OwningStorage that can grow and mutate in place.

Implemented by: PrimVec WritStringStorage DViewStore

traitOwningStorage

trait OwningStorage

Storage that owns its backing memory and must be explicitly dropped.

Implemented by: PrimVec WritStringStorage DViewStore

traitPodRef

trait PodRef

Marks >16-byte POD datatypes viewed by reference: *const DT reads, *mut DT writes.

traitPrimitive

trait Primitive

Marks ≤16-byte POD datatypes whose processing view is the Prim value type, copied in/out.

Implemented by: u8 u16 u32 u64 i8 i16 i32 i64 bool WAny

traitStorage

trait Storage

Base storage capability: element type, length, and indexed read.

Implemented by: PrimVec WritStringStorage DViewStore

traitUnsizedPayload

trait UnsizedPayload

Marks “fixed Meta + variable Atom tail” datatypes (string bytes, bigint limbs, ...). Class-marker only for now: the Container/SoA blanket over it is not yet landed.

Types

structBuffer

struct Buffer

Typed homogeneous container backed by DT::Store; elements pass as DT::ViewInStore.

Implements: Drop

Fields

storage: DT::Store

structPrimVec

struct PrimVec

Growable heap-backed vector of POD T — the generic DynamicStorage leaf.

Implements: Drop Storage OwningStorage DynamicStorage

Fields

cap: u64

Allocated capacity, in elements.

data: *mut T

Pointer to the heap buffer; null when nothing is allocated.

len: u64

Number of live elements.

Functions

fndrop_store

fn drop_store(s: *mut PrimVec<DT>) -> void

fnnew_store

fn new_store() -> PrimVec<DT>

fnstore_accepts

fn store_accepts(s: *const PrimVec<DT>, v: *const DT) -> bool

fnstore_get

fn store_get(s: *const PrimVec<DT>, idx: u64) -> *const DT

fnstore_insert_at

fn store_insert_at(s: *mut PrimVec<DT>, idx: u64, v: *const DT) -> void

fnstore_len

fn store_len(s: *const PrimVec<DT>) -> u64

fnstore_push

fn store_push(s: *mut PrimVec<DT>, v: *const DT) -> void

fnstore_remove_at

fn store_remove_at(s: *mut PrimVec<DT>, idx: u64) -> void

fnstore_set

fn store_set(s: *mut PrimVec<DT>, idx: u64, v: *const DT) -> void