pub struct MapResolver { /* private fields */ }Expand description
A Resolver backed by maps: descriptors by function hash, receipts by receipt hash, and
evaluated values by cell id. It is what the vectors’ recompute object describes
(SPEC 11): the descriptor goes under the receipt’s cell.fn_hash, the inputs under their
hashes, and value under the receipt’s own Cell::id.
A map holds one value per cell: evaluate ignores asof. A cell
with no value inserted cannot be evaluated (E_EVAL_UNAVAILABLE), as a recompute
without value means. A vector’s descriptor is a JSON value: insert its JCS bytes
(null as null, a string as its JSON serialisation); only an absent one is left out.
Implementations§
Source§impl MapResolver
impl MapResolver
Sourcepub fn new() -> MapResolver
pub fn new() -> MapResolver
An empty resolver: every descriptor and receipt unavailable, nothing evaluable.
Sourcepub fn insert_descriptor(
&mut self,
fn_hash: impl Into<String>,
json: impl Into<Vec<u8>>,
)
pub fn insert_descriptor( &mut self, fn_hash: impl Into<String>, json: impl Into<Vec<u8>>, )
Offers descriptor JSON text for fn_hash.
Sourcepub fn insert_receipt(
&mut self,
hash: impl Into<String>,
json: impl Into<Vec<u8>>,
)
pub fn insert_receipt( &mut self, hash: impl Into<String>, json: impl Into<Vec<u8>>, )
Offers receipt JSON text for receipt hash hash.
Sourcepub fn insert_value(&mut self, cell_id: impl Into<String>, value: Scalar)
pub fn insert_value(&mut self, cell_id: impl Into<String>, value: Scalar)
Sets the value evaluating the cell with id cell_id gives.
Trait Implementations§
Source§impl Clone for MapResolver
impl Clone for MapResolver
Source§impl Debug for MapResolver
impl Debug for MapResolver
Source§impl Default for MapResolver
impl Default for MapResolver
impl Eq for MapResolver
Source§impl PartialEq for MapResolver
impl PartialEq for MapResolver
Source§impl Resolver for MapResolver
impl Resolver for MapResolver
Source§fn descriptor(&self, fn_hash: &str) -> Option<Cow<'_, [u8]>>
fn descriptor(&self, fn_hash: &str) -> Option<Cow<'_, [u8]>>
fn_hash, or None if unavailable
(E_FN_UNAVAILABLE). Only None is unavailability: the text is parsed strictly
(unparseable text reports its parse code), and any other JSON value, null included,
is a descriptor offered that fails the hash check (E_FN_HASH_MISMATCH, SPEC 10.1
step 7.1).Source§fn receipt(&self, hash: &str) -> Option<Cow<'_, [u8]>>
fn receipt(&self, hash: &str) -> Option<Cow<'_, [u8]>>
hash, or None if unavailable
(E_INPUT_UNAVAILABLE).Source§fn evaluate(&self, cell: &Cell, _asof: &str) -> Option<Scalar>
fn evaluate(&self, cell: &Cell, _asof: &str) -> Option<Scalar>
cell as of asof (for stored: the value looked up as of it,
SPEC 10.1 step 7.6), or None if this resolver cannot evaluate it: no runtime for the
language, a budget exceeded, inputs the evaluator cannot obtain
(E_EVAL_UNAVAILABLE, see VerifyResult). asof is the receipt’s asof.