pub trait Source {
fn visit<'kvs>(
&'kvs self,
visitor: &mut dyn Visitor<'kvs>
) -> Result<(), Error>;
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
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
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.
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.