pub struct Thunk {
pub node: Node,
pub scope: Arc<Scope>,
pub path: Vec<String>,
pub cache_key: String,
pub value: Mutex<Option<Value>>,
}Expand description
A lazily-evaluated dict entry. The first access through
Evaluator::force_thunk parses + evaluates node against scope and
caches the result in value; later accesses return the cached value.
All fields are pub so that backend crates (currently
relon-evaluator) can read the captured node / scope when forcing the
thunk — they live in a distinct crate from Thunk, so a pub(crate)
visibility would block them.
Fields§
§node: Node§scope: Arc<Scope>§path: Vec<String>§cache_key: String§value: Mutex<Option<Value>>Implementations§
Auto Trait Implementations§
impl !Freeze for Thunk
impl RefUnwindSafe for Thunk
impl Send for Thunk
impl Sync for Thunk
impl Unpin for Thunk
impl UnsafeUnpin for Thunk
impl UnwindSafe for Thunk
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more