pub enum CompiledObjEntry {
Short {
name: Arc<str>,
ic: Arc<AtomicU64>,
},
Kv {
key: Arc<str>,
prog: Arc<Program>,
optional: bool,
cond: Option<Arc<Program>>,
},
KvPath {
key: Arc<str>,
steps: Arc<[KvStep]>,
optional: bool,
ics: Arc<[AtomicU64]>,
},
Dynamic {
key: Arc<Program>,
val: Arc<Program>,
},
Spread(Arc<Program>),
SpreadDeep(Arc<Program>),
}Expand description
A compiled object field for Opcode::MakeObj.
Variants§
Short
{ name } / { name, … } shorthand — reads env.current.name
(or a bound variable of that name). ic is a per-entry inline
cache hint so that repeated MakeObj calls over objects that share
shape skip the IndexMap key-hash on hit.
Kv
KvPath
Specialised Kv where the value is a pure path from current:
{ key: @.a.b[0] } compiles to KvPath so exec_make_obj can
walk env.current through the pre-resolved steps without a
sub-program exec. optional=true mirrors ? in the source —
the field is omitted when the walk lands on Null.
ics[i] is an inline-cache slot for steps[i] — only used when
the step is Field.
Dynamic
Spread(Arc<Program>)
SpreadDeep(Arc<Program>)
Trait Implementations§
Source§impl Clone for CompiledObjEntry
impl Clone for CompiledObjEntry
Source§fn clone(&self) -> CompiledObjEntry
fn clone(&self) -> CompiledObjEntry
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CompiledObjEntry
impl RefUnwindSafe for CompiledObjEntry
impl Send for CompiledObjEntry
impl Sync for CompiledObjEntry
impl Unpin for CompiledObjEntry
impl UnsafeUnpin for CompiledObjEntry
impl UnwindSafe for CompiledObjEntry
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