pub trait Source {
// Required method
fn visit<'kvs>(
&'kvs self,
visitor: &mut dyn Visitor<'kvs>
) -> Result<(), Error>;
// Provided methods
fn get<'v>(&'v self, key: Key<'_>) -> Option<Value<'v>> { ... }
fn count(&self) -> usize { ... }
}
Expand description
A source of key-value pairs.
The source may be a single pair, a set of pairs, or a filter over a set of pairs.
Use the Visitor
trait to inspect the structured data
in a source.
Required Methods§
sourcefn visit<'kvs>(&'kvs self, visitor: &mut dyn Visitor<'kvs>) -> Result<(), Error>
fn visit<'kvs>(&'kvs self, visitor: &mut dyn Visitor<'kvs>) -> Result<(), Error>
Visit key-value pairs.
A source doesn’t have to guarantee any ordering or uniqueness of key-value pairs. If the given visitor returns an error then the source may early-return with it, even if there are more key-value pairs.
Implementation notes
A source should yield the same key-value pairs to a subsequent visitor unless that visitor itself fails.
Provided Methods§
sourcefn get<'v>(&'v self, key: Key<'_>) -> Option<Value<'v>>
fn get<'v>(&'v self, key: Key<'_>) -> Option<Value<'v>>
Get the value for a given key.
If the key appears multiple times in the source then which key is returned is implementation specific.
Implementation notes
A source that can provide a more efficient implementation of this method should override it.
sourcefn count(&self) -> usize
fn count(&self) -> usize
Count the number of key-value pairs that can be visited.
Implementation notes
A source that knows the number of key-value pairs upfront may provide a more efficient implementation.
A subsequent call to visit
should yield the same number of key-value pairs
to the visitor, unless that visitor fails part way through.