pub struct ServerStore { /* private fields */ }Expand description
A client substrate over a remote gonzalo daemon.
Implementations§
Source§impl ServerStore
impl ServerStore
Sourcepub fn http(base_url: &str) -> Result<Self>
pub fn http(base_url: &str) -> Result<Self>
Talk to the daemon’s HTTP/JSON API rooted at base_url.
Sourcepub fn http_with_token(base_url: &str, token: impl Into<String>) -> Result<Self>
pub fn http_with_token(base_url: &str, token: impl Into<String>) -> Result<Self>
As ServerStore::http, sending a bearer token on every request.
Sourcepub async fn grpc(endpoint: String) -> Result<Self>
pub async fn grpc(endpoint: String) -> Result<Self>
Talk to the daemon’s gRPC API at endpoint (e.g. http://host:50051).
Sourcepub async fn grpc_with_token(
endpoint: String,
token: impl Into<String>,
) -> Result<Self>
pub async fn grpc_with_token( endpoint: String, token: impl Into<String>, ) -> Result<Self>
As ServerStore::grpc, sending a bearer token on every call.
Trait Implementations§
Source§impl BlobStore for ServerStore
impl BlobStore for ServerStore
Source§fn put_blob<'life0, 'life1, 'async_trait>(
&'life0 self,
content: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<ContentHash>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn put_blob<'life0, 'life1, 'async_trait>(
&'life0 self,
content: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<ContentHash>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Store
content addressed by its hash, write-if-absent, and return the
hash. Idempotent: storing identical content again is a no-op.Source§fn get_blob<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 ContentHash,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_blob<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 ContentHash,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch blob content by hash, or
None if absent.Source§fn list_blobs<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_blobs<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List the hashes of every stored blob. Order is unspecified. Used by GC
to enumerate candidates for sweeping (ADR 0012).
Source§fn delete_blob<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 ContentHash,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_blob<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 ContentHash,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete the blob addressed by
hash. Deleting an absent blob is an
idempotent no-op — GC may race another sweeper or a re-put.Source§impl Store for ServerStore
impl Store for ServerStore
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 RecordKey,
) -> Pin<Box<dyn Future<Output = Result<Option<Record>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 RecordKey,
) -> Pin<Box<dyn Future<Output = Result<Option<Record>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch a record by key, or
None if absent.Source§fn put<'life0, 'async_trait>(
&'life0 self,
record: Record,
expected: Option<Revision>,
) -> Pin<Box<dyn Future<Output = Result<PutResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put<'life0, 'async_trait>(
&'life0 self,
record: Record,
expected: Option<Revision>,
) -> Pin<Box<dyn Future<Output = Result<PutResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Conditionally write
record. expected is the revision the caller
believes is current (None means “expect no existing record”).
If the store’s current revision differs, returns PutResult::Conflict.Source§fn list<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'life1 KeyPrefix,
) -> Pin<Box<dyn Future<Output = Result<Vec<RecordKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'life1 KeyPrefix,
) -> Pin<Box<dyn Future<Output = Result<Vec<RecordKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List keys matching
prefix.Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 RecordKey,
expected: Option<Revision>,
) -> Pin<Box<dyn Future<Output = Result<DeleteResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 RecordKey,
expected: Option<Revision>,
) -> Pin<Box<dyn Future<Output = Result<DeleteResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Conditionally delete the record at
key. expected is the revision the
caller believes is current: None deletes unconditionally (idempotent
no-op if already absent); Some(rev) deletes only if the current revision
matches, returning DeleteResult::Conflict if a concurrent write moved it
first. Deleting an already-absent key is a no-op Deleted. Read moreAuto Trait Implementations§
impl !Freeze for ServerStore
impl !RefUnwindSafe for ServerStore
impl Send for ServerStore
impl Sync for ServerStore
impl Unpin for ServerStore
impl UnsafeUnpin for ServerStore
impl !UnwindSafe for ServerStore
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<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> 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