pub enum SerializedValue {
Show 38 variants
Nil,
Bool(bool),
Long(i64),
Double(f64),
BigInt(BigInt),
BigDecimal(BigDecimal),
Ratio(Ratio<BigInt>),
Char(char),
Str(String),
Uuid(u128),
Pattern(String),
Symbol {
namespace: Option<Arc<str>>,
name: Arc<str>,
version: Option<Arc<str>>,
},
Keyword {
namespace: Option<Arc<str>>,
name: Arc<str>,
},
List(Vec<SerializedValue>),
Vector(Vec<SerializedValue>),
ArrayMap(Vec<(SerializedValue, SerializedValue)>),
HashMap(Vec<(SerializedValue, SerializedValue)>),
SortedMap(Vec<(SerializedValue, SerializedValue)>),
HashSet(Vec<SerializedValue>),
SortedSet(Vec<SerializedValue>),
Queue(Vec<SerializedValue>),
Cons {
head: Box<SerializedValue>,
tail: Box<SerializedValue>,
},
TypeInstance {
type_tag: Arc<str>,
fields: Vec<(SerializedValue, SerializedValue)>,
},
Error(Box<SerializedError>),
BooleanArray(Vec<bool>),
ByteArray(Vec<i8>),
ShortArray(Vec<i16>),
IntArray(Vec<i32>),
LongArray(Vec<i64>),
FloatArray(Vec<f32>),
DoubleArray(Vec<f64>),
CharArray(Vec<char>),
ObjectArray(Vec<SerializedValue>),
WithMeta {
value: Box<SerializedValue>,
meta: Box<SerializedValue>,
},
Reduced(Box<SerializedValue>),
SharedAtom(Arc<SharedAtom>),
ByteBlob(Arc<[u8]>),
Var {
namespace: Arc<str>,
name: Arc<str>,
is_macro: bool,
shared_root: Arc<ArcSwap<Option<SharedValue>>>,
},
}Expand description
Send + Sync intermediate form produced by serialize and consumed by
deserialize. All heap data is owned (no GcPtr), so it is safe to move
across thread boundaries.
Variants§
Nil
Bool(bool)
Long(i64)
Double(f64)
BigInt(BigInt)
BigDecimal(BigDecimal)
Ratio(Ratio<BigInt>)
Char(char)
Str(String)
Uuid(u128)
Pattern(String)
Regex stored as source string; recompiled on deserialize.
Symbol
Keyword
List(Vec<SerializedValue>)
Vector(Vec<SerializedValue>)
ArrayMap(Vec<(SerializedValue, SerializedValue)>)
HashMap(Vec<(SerializedValue, SerializedValue)>)
SortedMap(Vec<(SerializedValue, SerializedValue)>)
HashSet(Vec<SerializedValue>)
SortedSet(Vec<SerializedValue>)
Queue(Vec<SerializedValue>)
Cons
TypeInstance
Error(Box<SerializedError>)
BooleanArray(Vec<bool>)
ByteArray(Vec<i8>)
ShortArray(Vec<i16>)
IntArray(Vec<i32>)
LongArray(Vec<i64>)
FloatArray(Vec<f32>)
DoubleArray(Vec<f64>)
CharArray(Vec<char>)
ObjectArray(Vec<SerializedValue>)
WithMeta
Reduced(Box<SerializedValue>)
SharedAtom is inherently cross-isolate; the Arc is simply cloned so
both isolates share the same underlying ArcSwap cell.
ByteBlob(Arc<[u8]>)
ByteBlob is an immutable refcounted buffer; clone the Arc.
Var
A var crosses by sharing its cross-isolate root cell (the Arc is
cloned, so both isolates point at the same ArcSwap). The receiving
isolate rebuilds a Var whose local fast-path slot is the demoted
current snapshot. Only vars with a promotable (or unbound) root reach
here — a non-promotable root is rejected at serialize time.
Implementations§
Source§impl SerializedValue
impl SerializedValue
Sourcepub fn byte_size(&self) -> usize
pub fn byte_size(&self) -> usize
Estimated heap bytes materialized by deep-copying this value into the
receiving isolate’s heap. This is an approximation for telemetry
(the metered clone seam the isolate-boundary plan requires), not an
exact allocation count: each node contributes a fixed per-node cost plus
the size of any owned payload (string bytes, array elements, big-number
magnitude). Arc-shared payloads (SharedAtom, ByteBlob) count as
zero structural bytes because they cross by refcount, not by copy.
Trait Implementations§
Source§impl Clone for SerializedValue
impl Clone for SerializedValue
Source§fn clone(&self) -> SerializedValue
fn clone(&self) -> SerializedValue
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SerializedValue
impl RefUnwindSafe for SerializedValue
impl Send for SerializedValue
impl Sync for SerializedValue
impl Unpin for SerializedValue
impl UnsafeUnpin for SerializedValue
impl UnwindSafe for SerializedValue
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more