Struct kanidmd_lib::be::BackendReadTransaction
source · pub struct BackendReadTransaction<'a> { /* private fields */ }
Implementations§
source§impl<'a> BackendReadTransaction<'a>
impl<'a> BackendReadTransaction<'a>
pub fn list_indexes(&mut self) -> Result<Vec<String>, OperationError>
pub fn list_id2entry(&mut self) -> Result<Vec<(u64, String)>, OperationError>
pub fn list_index_content( &mut self, index_name: &str, ) -> Result<Vec<(String, IDLBitRange)>, OperationError>
pub fn get_id2entry(&mut self, id: u64) -> Result<(u64, String), OperationError>
pub fn list_quarantined(&mut self) -> Result<Vec<(u64, String)>, OperationError>
Trait Implementations§
source§impl<'a> BackendTransaction for BackendReadTransaction<'a>
impl<'a> BackendTransaction for BackendReadTransaction<'a>
type IdlLayerType = IdlArcSqliteReadTransaction<'a>
type RuvType = ReplicationUpdateVectorReadTransaction<'a>
fn get_idlayer(&mut self) -> &mut IdlArcSqliteReadTransaction<'a>
fn get_ruv(&mut self) -> &mut ReplicationUpdateVectorReadTransaction<'a>
fn get_idxmeta_ref(&self) -> &IdxMeta
source§fn filter2idl(
&mut self,
filt: &FilterResolved,
thres: usize,
) -> Result<(IdList, FilterPlan), OperationError>
fn filter2idl( &mut self, filt: &FilterResolved, thres: usize, ) -> Result<(IdList, FilterPlan), OperationError>
Recursively apply a filter, transforming into IdList’s on the way. This builds a query
execution log, so that it can be examined how an operation proceeded.
fn filter2idl_sub( &mut self, attr: &Attribute, sub_idx_key: String, ) -> Result<(IdList, FilterPlan), OperationError>
fn search( &mut self, erl: &Limits, filt: &Filter<FilterValidResolved>, ) -> Result<Vec<Arc<EntrySealedCommitted>>, OperationError>
source§fn exists(
&mut self,
erl: &Limits,
filt: &Filter<FilterValidResolved>,
) -> Result<bool, OperationError>
fn exists( &mut self, erl: &Limits, filt: &Filter<FilterValidResolved>, ) -> Result<bool, OperationError>
Given a filter, assert some condition exists.
Basically, this is a specialised case of search, where we don’t need to
load any candidates if they match. This is heavily used in uuid
refint and attr uniqueness.
fn retrieve_range( &mut self, ranges: &BTreeMap<Uuid, ReplCidRange>, ) -> Result<Vec<Arc<EntrySealedCommitted>>, OperationError>
fn verify(&mut self) -> Vec<Result<(), ConsistencyError>>
fn verify_entry_index( &mut self, e: &EntrySealedCommitted, ) -> Result<(), ConsistencyError>
fn verify_indexes(&mut self) -> Vec<Result<(), ConsistencyError>>
fn verify_ruv(&mut self, results: &mut Vec<Result<(), ConsistencyError>>)
fn backup(&mut self, dst_path: &str) -> Result<(), OperationError>
fn name2uuid(&mut self, name: &str) -> Result<Option<Uuid>, OperationError>
fn externalid2uuid( &mut self, name: &str, ) -> Result<Option<Uuid>, OperationError>
fn uuid2spn(&mut self, uuid: Uuid) -> Result<Option<Value>, OperationError>
fn uuid2rdn(&mut self, uuid: Uuid) -> Result<Option<String>, OperationError>
impl<'a> Send for BackendReadTransaction<'a>
impl<'a> Sync for BackendReadTransaction<'a>
Auto Trait Implementations§
impl<'a> !Freeze for BackendReadTransaction<'a>
impl<'a> !RefUnwindSafe for BackendReadTransaction<'a>
impl<'a> Unpin for BackendReadTransaction<'a>
impl<'a> !UnwindSafe for BackendReadTransaction<'a>
Blanket Implementations§
§impl<'a, T> AsTaggedExplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedExplicit<'a> for Twhere
T: 'a,
§impl<'a, T> AsTaggedImplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedImplicit<'a> for Twhere
T: 'a,
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request