Skip to main content

Module value

Module value 

Source
Expand description

The Value type — the datum a Seq program talks about — plus the supporting types it embeds or composes with:

  • Value: the 11-variant enum (Int, Float, Bool, String, Symbol, Variant, Map, Quotation, Closure, Channel, WeaveCtx).
  • VariantData: the heap-allocated payload behind Value::Variant.
  • MapKey: the hashable subset of Value allowed as map keys.
  • ChannelData / WeaveChannelData / WeaveMessage: the channel handles that back Value::Channel and Value::WeaveCtx.

Value has #[repr(C)] so compiled code can write into it directly without going through FFI, and implements Send + Sync via an unsafe impl (see the comment block on that impl for the safety argument).

Structs§

ChannelData
Channel data: holds sender and receiver for direct handle passing
VariantData
VariantData: Composite values (sum types)
WeaveChannelData
Channel data specifically for weave communication.

Enums§

MapKey
MapKey: Hashable subset of Value for use as map keys
Value
Value: What the language talks about
WeaveMessage
Message type for weave channels.