Skip to main content

AuditedDriver

Struct AuditedDriver 

Source
pub struct AuditedDriver<'a> { /* private fields */ }
Expand description

A Driver decorator that commits a durable per-write intent before forwarding any live mutation and records whether the transport accepted or rejected it afterward.

Implementations§

Source§

impl<'a> AuditedDriver<'a>

Source

pub fn new( inner: &'a dyn Driver, pool: &'a SqlitePool, guard: &'a LiveOperationGuard, run_id: Option<i64>, ) -> Self

Source

pub fn run_id(&self) -> Option<i64>

Source

pub fn owner(&self) -> &LiveOperationGuard

Trait Implementations§

Source§

impl Driver for AuditedDriver<'_>

Source§

fn read<'life0, 'life1, 'async_trait>( &'life0 self, tags: &'life1 [TagId], ) -> Pin<Box<dyn Future<Output = DriverResult<Vec<TagValue>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Reads the current value of every tag in tags, in one batched call where the driver supports it (a single OPC DA Read RPC for all of them, rather than one round trip per tag). Returns exactly one TagValue per requested tag, in the same order as tags. Read more
Source§

fn write<'life0, 'life1, 'async_trait>( &'life0 self, tag: &'life1 TagId, value: TagWrite, ) -> Pin<Box<dyn Future<Output = DriverResult<WriteOutcome>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Writes value to tag. Read more
Source§

fn browse<'life0, 'async_trait>( &'life0 self, request: BrowsePageRequest, ) -> Pin<Box<dyn Future<Output = DriverResult<BrowsePage>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Lists one bounded page of immediate children. Navigation uses opaque session, node, and continuation values returned by the driver; callers must not infer hierarchy by parsing punctuation in an ItemID.
Source§

fn capabilities<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<DriverCapabilities, DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Reports the namespace capabilities of this driver/server pair.
Source§

fn close_browse_session<'life0, 'life1, 'async_trait>( &'life0 self, _session_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Releases a server-side browse session.
Source§

fn search<'life0, 'async_trait>( &'life0 self, _request: SearchRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<SearchEvent>, DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Collects a bounded namespace search. Drivers that support progressive search may expose a richer stream through their concrete type; this method is the portable trait surface.
Source§

fn search_index_status<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<SearchIndexStatus, DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Reports the gateway-owned persistent namespace-index status.
Source§

fn refresh_search_index<'life0, 'async_trait>( &'life0 self, _force: bool, ) -> Pin<Box<dyn Future<Output = Result<SearchIndexStatus, DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Starts or coalesces a persistent namespace-index refresh.
Source§

fn control_search_index<'life0, 'async_trait>( &'life0 self, _action: SearchIndexControlAction, ) -> Pin<Box<dyn Future<Output = Result<SearchIndexStatus, DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Pauses, resumes, or cancels a persistent namespace-index build.
Source§

fn set_search_index_auto_refresh<'life0, 'async_trait>( &'life0 self, _enabled: bool, ) -> Pin<Box<dyn Future<Output = Result<SearchIndexStatus, DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Enables or disables future automatic refreshes for this server’s index.
Source§

fn delete_search_index<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<SearchIndexStatus, DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Deletes this server’s persistent namespace index and enrollment.
Source§

fn search_index<'life0, 'async_trait>( &'life0 self, _request: SearchIndexRequest, ) -> Pin<Box<dyn Future<Output = Result<SearchIndexResponse, DriverError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Queries the gateway-owned persistent namespace index.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for AuditedDriver<'a>

§

impl<'a> !UnwindSafe for AuditedDriver<'a>

§

impl<'a> Freeze for AuditedDriver<'a>

§

impl<'a> Send for AuditedDriver<'a>

§

impl<'a> Sync for AuditedDriver<'a>

§

impl<'a> Unpin for AuditedDriver<'a>

§

impl<'a> UnsafeUnpin for AuditedDriver<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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 more
§

impl<T> IntoRequest<T> for T

§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<L> LayerExt<L> for L

§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in [Layered].
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more