Struct tvix_castore::proto::GRPCDirectoryServiceWrapper
source · pub struct GRPCDirectoryServiceWrapper<T> {
directory_service: T,
}
Fields§
§directory_service: T
Implementations§
source§impl<T> GRPCDirectoryServiceWrapper<T>
impl<T> GRPCDirectoryServiceWrapper<T>
Trait Implementations§
source§impl<T> DirectoryService for GRPCDirectoryServiceWrapper<T>
impl<T> DirectoryService for GRPCDirectoryServiceWrapper<T>
§type GetStream = Pin<Box<dyn Stream<Item = Result<Directory, Status>> + Send>>
type GetStream = Pin<Box<dyn Stream<Item = Result<Directory, Status>> + Send>>
Server streaming response type for the Get method.
source§fn get<'a, 'async_trait>(
&'a self,
request: Request<GetDirectoryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::GetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
fn get<'a, 'async_trait>(
&'a self,
request: Request<GetDirectoryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::GetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
Get retrieves a stream of Directory messages, by using the lookup
parameters in GetDirectoryRequest.
Keep in mind multiple DirectoryNodes in different parts of the graph might
have the same digest if they have the same underlying contents,
so sending subsequent ones can be omitted. Read more
source§fn put<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<Directory>>,
) -> Pin<Box<dyn Future<Output = Result<Response<PutDirectoryResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<Directory>>,
) -> Pin<Box<dyn Future<Output = Result<Response<PutDirectoryResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Put uploads a graph of Directory messages.
Individual Directory messages need to be send in an order walking up
from the leaves to the root - a Directory message can only refer to
Directory messages previously sent in the same stream.
Keep in mind multiple DirectoryNodes in different parts of the graph might
have the same digest if they have the same underlying contents,
so sending subsequent ones can be omitted.
We might add a separate method, allowing to send partial graphs at a later
time, if requiring to send the full graph turns out to be a problem.
Auto Trait Implementations§
impl<T> Freeze for GRPCDirectoryServiceWrapper<T>where
T: Freeze,
impl<T> RefUnwindSafe for GRPCDirectoryServiceWrapper<T>where
T: RefUnwindSafe,
impl<T> Send for GRPCDirectoryServiceWrapper<T>where
T: Send,
impl<T> Sync for GRPCDirectoryServiceWrapper<T>where
T: Sync,
impl<T> Unpin for GRPCDirectoryServiceWrapper<T>where
T: Unpin,
impl<T> UnwindSafe for GRPCDirectoryServiceWrapper<T>where
T: UnwindSafe,
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
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 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