pub struct BigtablePathInfoService {
instance_name: String,
client: BigTable,
params: BigtableParameters,
}Expand description
Provides a PathInfoService implementation using Bigtable as an underlying K/V store.
§Data format
We use Bigtable as a plain K/V store. The row key is the digest of the store path, in hexlower. Inside the row, we currently have a single column/cell, again using the hexlower store path digest. Its value is the PathInfo message, serialized in canonical protobuf. We currently only populate this column.
Listing is ranging over all rows, and calculate_nar is returning a “unimplemented” error.
Fields§
§instance_name: String§client: BigTable§params: BigtableParametersImplementations§
Trait Implementations§
Source§impl Clone for BigtablePathInfoService
impl Clone for BigtablePathInfoService
Source§fn clone(&self) -> BigtablePathInfoService
fn clone(&self) -> BigtablePathInfoService
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl PathInfoService for BigtablePathInfoService
impl PathInfoService for BigtablePathInfoService
Source§fn get<'life0, 'async_trait>(
&'life0 self,
digest: [u8; 20],
) -> Pin<Box<dyn Future<Output = Result<Option<PathInfo>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get<'life0, 'async_trait>(
&'life0 self,
digest: [u8; 20],
) -> Pin<Box<dyn Future<Output = Result<Option<PathInfo>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Retrieve a PathInfo message by the output digest.
Source§fn put<'life0, 'async_trait>(
&'life0 self,
path_info: PathInfo,
) -> Pin<Box<dyn Future<Output = Result<PathInfo, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put<'life0, 'async_trait>(
&'life0 self,
path_info: PathInfo,
) -> Pin<Box<dyn Future<Output = Result<PathInfo, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Store a PathInfo message. Implementations MUST call validate and reject
invalid messages.
Source§fn list(&self) -> BoxStream<'static, Result<PathInfo, Error>>
fn list(&self) -> BoxStream<'static, Result<PathInfo, Error>>
Iterate over all PathInfo objects in the store.
Implementations can decide to disallow listing. Read more
Source§fn nar_calculation_service(&self) -> Option<Box<dyn NarCalculationService>>
fn nar_calculation_service(&self) -> Option<Box<dyn NarCalculationService>>
Returns a (more) suitable NarCalculationService.
This can be used to offload NAR calculation to the remote side.
Auto Trait Implementations§
impl !Freeze for BigtablePathInfoService
impl !RefUnwindSafe for BigtablePathInfoService
impl Send for BigtablePathInfoService
impl Sync for BigtablePathInfoService
impl Unpin for BigtablePathInfoService
impl !UnwindSafe for BigtablePathInfoService
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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