pub enum AsOfScope<'a> {
Role(&'a str),
Keys(&'a [String]),
RoleAndKeys(&'a str, &'a [String]),
Namespace(&'a str),
}Expand description
How an as-of read is restricted — the argument to
GraphDb::query_at_scoped.
Every variant is resolved against the graph as it was at the requested commit, not against the current graph.
Variants§
Role(&'a str)
Everything the named role may see. The role definition is the current
one — roles.json is a sidecar and has no past version — but its
keys and labels are resolved against the as-of graph.
Keys(&'a [String])
An explicit node-key allow-list. Keys that did not exist at that commit resolve to nothing.
RoleAndKeys(&'a str, &'a [String])
A role intersected with a client-supplied allow-list. The intersection is the never-widen rule: a client mask can only narrow a role.
Namespace(&'a str)
Every live node in one namespace, as the graph was at that commit.
A namespace cannot change — it is set at insert and immutable — so the answer is simply “the nodes that existed then and are in this namespace”. A name no node uses resolves to nothing, never to everything.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for AsOfScope<'a>
impl<'a> RefUnwindSafe for AsOfScope<'a>
impl<'a> Send for AsOfScope<'a>
impl<'a> Sync for AsOfScope<'a>
impl<'a> Unpin for AsOfScope<'a>
impl<'a> UnsafeUnpin for AsOfScope<'a>
impl<'a> UnwindSafe for AsOfScope<'a>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.