pub struct RequestContext {
pub recipient: Principal,
}Fields§
§recipient: PrincipalImplementations§
Trait Implementations§
Source§impl AsRef<Principal> for RequestContext
impl AsRef<Principal> for RequestContext
Source§impl Clone for RequestContext
impl Clone for RequestContext
Source§fn clone(&self) -> RequestContext
fn clone(&self) -> RequestContext
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RequestContext
impl Debug for RequestContext
Source§impl DeltaBackend<RequestContext> for ServerHandler<RequestContext>
impl DeltaBackend<RequestContext> for ServerHandler<RequestContext>
Source§fn capabilities(&self) -> DeltaCapabilities
fn capabilities(&self) -> DeltaCapabilities
The optional operations this backend serves, used by
getConfig to advertise
a capability-accurate endpoint list. Defaults to DeltaCapabilities::default
(all off), so a backend advertises an optional operation only by opting in.Source§fn catalog_exists<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
catalog: &'life1 str,
_cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn catalog_exists<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
catalog: &'life1 str,
_cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Confirm the catalog exists (for
getConfig). Missing → DeltaBackendError::NotFound.Source§fn resolve_table<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table: &'life1 TableRef,
cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<ResolvedTable>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resolve_table<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table: &'life1 TableRef,
cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<ResolvedTable>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Resolve a table by 3-part name. Missing →
DeltaBackendError::NotFound.Authorize an action before the handler performs it. Read more
Source§fn validate_external_location<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
location: &'life1 str,
_cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn validate_external_location<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
location: &'life1 str,
_cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Validate that an EXTERNAL table location lies within a registered external
location.
Source§fn create_table_row<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: CreateTableSpec,
_cx: &'life1 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<ResolvedTable>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_table_row<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: CreateTableSpec,
_cx: &'life1 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<ResolvedTable>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Persist a new Delta table row and return it resolved. Read more
Source§fn update_table_row<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: UpdateTableSpec,
_cx: &'life1 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<ResolvedTable>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_table_row<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: UpdateTableSpec,
_cx: &'life1 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<ResolvedTable>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Persist metadata changes to an existing table and return it resolved. Read more
Source§fn delete_table<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table: &'life1 TableRef,
cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn delete_table<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table: &'life1 TableRef,
cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Delete a table.
Source§fn rename_table<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
from: &'life1 TableRef,
to_name: &'life2 str,
_cx: &'life3 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn rename_table<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
from: &'life1 TableRef,
to_name: &'life2 str,
_cx: &'life3 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Rename a table within the same catalog + schema. Backends without rename
support return
DeltaBackendError::NotImplemented.Source§fn allocate_staging<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
at: &'life1 SchemaRef,
name: &'life2 str,
cx: &'life3 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<StagingReservation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn allocate_staging<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
at: &'life1 SchemaRef,
name: &'life2 str,
cx: &'life3 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<StagingReservation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Allocate a staging reservation (uuid + managed location) under a schema.
Source§fn resolve_staging_by_location<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
location: &'life1 str,
_cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<StagingReservation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resolve_staging_by_location<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
location: &'life1 str,
_cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<StagingReservation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Resolve a staging reservation by its managed location.
Source§fn resolve_staging_by_id<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table_id: &'life1 str,
_cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<StagingReservation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resolve_staging_by_id<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table_id: &'life1 str,
_cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<StagingReservation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Resolve a staging reservation by its uuid.
Source§fn vend_table_credential<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table_id: &'life1 str,
access: CredentialAccess,
cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<VendedCredential>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn vend_table_credential<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table_id: &'life1 str,
access: CredentialAccess,
cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<VendedCredential>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Vend a credential for a table’s location at the given access level.
Source§fn vend_path_credential<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
location: &'life1 str,
access: CredentialAccess,
cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<VendedCredential>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn vend_path_credential<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
location: &'life1 str,
access: CredentialAccess,
cx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = BackendResult<VendedCredential>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Vend a credential for an arbitrary path at the given access level.
Source§fn commit_coordinator(&self) -> &dyn CommitCoordinator
fn commit_coordinator(&self) -> &dyn CommitCoordinator
The commit coordinator backing this backend’s Delta commit log.
Source§impl<S: Send + Sync> FromRequestParts<S> for RequestContext
Extract a RequestContext from the Principal that the
AuthenticationMiddleware inserted into the request extensions.
impl<S: Send + Sync> FromRequestParts<S> for RequestContext
Extract a RequestContext from the Principal that the
AuthenticationMiddleware inserted into the request extensions.
This is the transport-side counterpart to that middleware: the middleware
writes the Principal, this reads it back so handlers can receive a
RequestContext. It lives here (rather than next to the RequestContext
definition in crate::api) to keep the api module free of any axum
coupling.
Auto Trait Implementations§
impl Freeze for RequestContext
impl RefUnwindSafe for RequestContext
impl Send for RequestContext
impl Sync for RequestContext
impl Unpin for RequestContext
impl UnsafeUnpin for RequestContext
impl UnwindSafe for RequestContext
Blanket Implementations§
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<S, T> FromRequest<S, ViaParts> for T
impl<S, T> FromRequest<S, ViaParts> for T
Source§type Rejection = <T as FromRequestParts<S>>::Rejection
type Rejection = <T as FromRequestParts<S>>::Rejection
If the extractor fails it’ll use this “rejection” type. A rejection is
a kind of error that can be converted into a response.
Source§fn from_request(
req: Request<Body>,
state: &S,
) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
fn from_request( req: Request<Body>, state: &S, ) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
Perform the extraction.
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 more