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>.
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.
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