Skip to main content

Crate shape_value

Crate shape_value 

Source
Expand description

Core value types for Shape

This crate contains the foundational value types and core data structures used throughout the Shape language implementation. After the strict-typing bulldozer, the runtime representation is per-slot raw native bits whose NativeKind is determined at compile time and carried in the FunctionBlob. There is no ValueWord, no NaN-boxing, no dynamic dispatch on value type.

Dependency hierarchy:

  • shape-value → shape-ast (no circular dependencies)
  • shape-runtime → shape-value (for types)
  • shape-vm → shape-value (for types)

Re-exports§

pub use aligned_vec::AlignedVec;
pub use content::BorderStyle;
pub use content::ChartChannel;
pub use content::ChartSeries;
pub use content::ChartSpec;
pub use content::ChartType;
pub use content::Color;
pub use content::ContentNode;
pub use content::ContentTable;
pub use content::NamedColor;
pub use content::Style;
pub use content::StyledSpan;
pub use content::StyledText;
pub use context::ErrorLocation;
pub use context::LocatedVMError;
pub use context::VMError;
pub use datatable::ColumnPtrs;
pub use datatable::DataTable;
pub use datatable::DataTableBuilder;
pub use heap_header::FLAG_MARKED;
pub use heap_header::FLAG_PINNED;
pub use heap_header::FLAG_READONLY;
pub use heap_header::HeapHeader;
pub use heap_value::HeapKind;
pub use heap_value::HeapValue;
pub use heap_value::TableViewData;
pub use heap_value::TemporalData;
pub use heap_value::TypedObjectStorage;
pub use ids::FunctionId;
pub use ids::SchemaId;
pub use ids::StackSlotIdx;
pub use ids::StringId;
pub use iterator_state::IteratorSource;
pub use iterator_state::IteratorState;
pub use iterator_state::IteratorTransform;
pub use kinded_slot::KindedSlot;
pub use method_id::MethodId;
pub use native_kind::NativeKind;
pub use reference::RefTarget;
pub use scalar::ScalarKind;
pub use scalar::TypedScalar;
pub use shape_graph::Shape;
pub use shape_graph::ShapeId;
pub use shape_graph::ShapeTransitionTable;
pub use shape_graph::drain_shape_transitions;
pub use shape_graph::hash_property_name;
pub use shape_graph::shape_for_hashmap_keys;
pub use shape_graph::shape_property_index;
pub use shape_graph::shape_transition;
pub use shape_graph_current::ShapeTableHandle;
pub use shape_graph_current::SyncShapeTableScope;
pub use shape_graph_current::current_shape_table;
pub use shape_graph_current::try_current_shape_table;
pub use shape_graph_current::with_async_shape_table_scope;
pub use slot::ValueSlot;
pub use value::ErasureError;
pub use value::ErasureType;
pub use value::FilterLiteral;
pub use value::FilterNode;
pub use value::FilterOp;
pub use value::RewriteResult;
pub use value::ThunkSignature;
pub use value::TypeInfo;
pub use value::VTable;
pub use value::VTableEntry;
pub use value::VTableEntryFlags;
pub use value::WrapTarget;
pub use vm_closure_handle::VmClosureHandle;
pub use v2::heap_header::HeapHeader as V2HeapHeader;
pub use v2::refcount::v2_release;
pub use v2::refcount::v2_retain;
pub use v2::string_obj::StringObj as V2StringObj;
pub use v2::struct_layout::FieldInfo;
pub use v2::struct_layout::FieldKind;
pub use v2::struct_layout::StructLayout;
pub use v2::typed_array::TypedArray as V2TypedArray;

Modules§

aligned_vec
SIMD-aligned vector implementation for high-performance time series operations
content
Structured content nodes — the output of Content.render().
context
VM execution error types and source-location data.
datatable
Columnar DataTable backed by Arrow RecordBatch.
heap_header
Unified heap object header (v2 runtime spec).
heap_value
Heap-allocated value types reachable through HeapValue.
heap_variants
Single source of truth for HeapValue variants.
ids
Strongly-typed newtype wrappers for numeric identifiers.
iterator_state
Iterator-state carrier — the kinded redesign of the deleted heap_value::IteratorState / IteratorTransform ValueWord-shaped enums.
kinded_slot
KindedSlot: caller-side runtime-value carrier (ADR-006 §2.7 / Q7).
method_id
Typed method identifiers for zero-cost dispatch.
native_kind
NativeKind: the single discriminator for typed values at every ABI exit.
reference
Reference-value carrier — the kinded redesign of the deleted nanboxed::RefTarget / RefProjection ValueWord-shaped enum.
scalar
TypedScalar: type-preserving scalar boundary contract for VM↔JIT exchange.
shape_graph
Shape graph for HashMap hidden classes.
shape_graph_current
Task-local “current” ShapeTransitionTable handle.
slot
ValueSlot: 8-byte raw value storage for TypedObject fields
string_intern
Small-string interning (Phase D.4).
v2
v2_struct_layout
Compile-time repr(C) struct layout computation for the v2 runtime.
value
Surviving typed value types after the strict-typing bulldozer.
vm_closure_handle
VmClosureHandle — a read-only shim over the raw closure backing.

Macros§

define_heap_types
All HeapValue variant data lives here as a single source of truth.