pub enum HeapValue {
Show 66 variants
String(Arc<String>),
Array(VMArray),
Decimal(Decimal),
BigInt(i64),
HostClosure(HostCallable),
DataTable(Arc<DataTable>),
HashMap(Box<HashMapData>),
Set(Box<SetData>),
Deque(Box<DequeData>),
PriorityQueue(Box<PriorityQueueData>),
Content(Box<ContentNode>),
Instant(Box<Instant>),
IoHandle(Box<IoHandleData>),
Enum(Box<EnumValue>),
Some(Box<ValueWord>),
Ok(Box<ValueWord>),
Err(Box<ValueWord>),
Future(u64),
ExprProxy(Arc<String>),
FilterExpr(Arc<FilterNode>),
Time(DateTime<FixedOffset>),
Duration(Duration),
TimeSpan(Duration),
Timeframe(Timeframe),
TimeReference(Box<TimeReference>),
DateTimeExpr(Box<DateTimeExpr>),
DataDateTimeRef(Box<DataDateTimeRef>),
TypeAnnotation(Box<TypeAnnotation>),
PrintResult(Box<PrintResult>),
SimulationCall(Box<SimulationCallData>),
DataReference(Box<DataReferenceData>),
NativeScalar(NativeScalar),
NativeView(Box<NativeViewData>),
IntArray(Arc<TypedBuffer<i64>>),
FloatArray(Arc<AlignedTypedBuffer>),
BoolArray(Arc<TypedBuffer<u8>>),
Matrix(Arc<MatrixData>),
I8Array(Arc<TypedBuffer<i8>>),
I16Array(Arc<TypedBuffer<i16>>),
I32Array(Arc<TypedBuffer<i32>>),
U8Array(Arc<TypedBuffer<u8>>),
U16Array(Arc<TypedBuffer<u16>>),
U32Array(Arc<TypedBuffer<u32>>),
U64Array(Arc<TypedBuffer<u64>>),
F32Array(Arc<TypedBuffer<f32>>),
Iterator(Box<IteratorState>),
Generator(Box<GeneratorState>),
Mutex(Box<MutexData>),
Atomic(Box<AtomicData>),
Lazy(Box<LazyData>),
Channel(Box<ChannelData>),
Char(char),
ProjectedRef(Box<ProjectedRefData>),
FloatArraySlice {
parent: Arc<MatrixData>,
offset: u32,
len: u32,
},
TypedObject {
schema_id: u64,
slots: Box<[ValueSlot]>,
heap_mask: u64,
},
Closure {
function_id: u16,
upvalues: Vec<Upvalue>,
},
TypedTable {
schema_id: u64,
table: Arc<DataTable>,
},
RowView {
schema_id: u64,
table: Arc<DataTable>,
row_idx: usize,
},
ColumnRef {
schema_id: u64,
table: Arc<DataTable>,
col_id: u32,
},
IndexedTable {
schema_id: u64,
table: Arc<DataTable>,
index_col: u32,
},
Range {
start: Option<Box<ValueWord>>,
end: Option<Box<ValueWord>>,
inclusive: bool,
},
TaskGroup {
kind: u8,
task_ids: Vec<u64>,
},
TraitObject {
value: Box<ValueWord>,
vtable: Arc<VTable>,
},
TypeAnnotatedValue {
type_name: String,
value: Box<ValueWord>,
},
FunctionRef {
name: String,
closure: Option<Box<ValueWord>>,
},
SharedCell(Arc<RwLock<ValueWord>>),
}Expand description
Compact heap-allocated value for ValueWord TAG_HEAP.
Every type that cannot be inlined in ValueWord has a dedicated variant here. Inline ValueWord types (f64, i48, bool, None, Unit, Function, ModuleFunction) are never stored in HeapValue.
Variants§
String(Arc<String>)
Array(VMArray)
Decimal(Decimal)
BigInt(i64)
HostClosure(HostCallable)
DataTable(Arc<DataTable>)
HashMap(Box<HashMapData>)
Set(Box<SetData>)
Deque(Box<DequeData>)
PriorityQueue(Box<PriorityQueueData>)
Content(Box<ContentNode>)
Instant(Box<Instant>)
IoHandle(Box<IoHandleData>)
Enum(Box<EnumValue>)
Some(Box<ValueWord>)
Ok(Box<ValueWord>)
Err(Box<ValueWord>)
Future(u64)
ExprProxy(Arc<String>)
FilterExpr(Arc<FilterNode>)
Time(DateTime<FixedOffset>)
Duration(Duration)
TimeSpan(Duration)
Timeframe(Timeframe)
TimeReference(Box<TimeReference>)
DateTimeExpr(Box<DateTimeExpr>)
DataDateTimeRef(Box<DataDateTimeRef>)
TypeAnnotation(Box<TypeAnnotation>)
PrintResult(Box<PrintResult>)
SimulationCall(Box<SimulationCallData>)
DataReference(Box<DataReferenceData>)
NativeScalar(NativeScalar)
NativeView(Box<NativeViewData>)
IntArray(Arc<TypedBuffer<i64>>)
FloatArray(Arc<AlignedTypedBuffer>)
BoolArray(Arc<TypedBuffer<u8>>)
Matrix(Arc<MatrixData>)
I8Array(Arc<TypedBuffer<i8>>)
I16Array(Arc<TypedBuffer<i16>>)
I32Array(Arc<TypedBuffer<i32>>)
U8Array(Arc<TypedBuffer<u8>>)
U16Array(Arc<TypedBuffer<u16>>)
U32Array(Arc<TypedBuffer<u32>>)
U64Array(Arc<TypedBuffer<u64>>)
F32Array(Arc<TypedBuffer<f32>>)
Iterator(Box<IteratorState>)
Generator(Box<GeneratorState>)
Mutex(Box<MutexData>)
Atomic(Box<AtomicData>)
Lazy(Box<LazyData>)
Channel(Box<ChannelData>)
Char(char)
ProjectedRef(Box<ProjectedRefData>)
FloatArraySlice
Zero-copy read-only slice into a parent matrix row.
TypedObject
Closure
TypedTable
RowView
ColumnRef
IndexedTable
Range
TaskGroup
TraitObject
TypeAnnotatedValue
FunctionRef
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HeapValue
impl !RefUnwindSafe for HeapValue
impl Send for HeapValue
impl Sync for HeapValue
impl Unpin for HeapValue
impl UnsafeUnpin for HeapValue
impl !UnwindSafe for HeapValue
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more