Skip to main content

RemoteCacheClient

Struct RemoteCacheClient 

Source
pub struct RemoteCacheClient { /* private fields */ }
Expand description

HTTP client for the mbx remote cache protocol.

The client validates digests, response sizes, media types, and redirects at the protocol boundary. It is safe to share between asynchronous tasks.

Implementations§

Source§

impl RemoteCacheClient

Source

pub fn new(config: RemoteCacheConfig) -> Result<Self>

Construct a client and validate its URL and authentication settings.

Source

pub async fn check_connection(&self) -> Result<()>

Connect to the server, authenticate, and negotiate protocol capabilities.

This performs no cache reads or writes. It is intended for diagnostics that need to distinguish a valid client configuration from a reachable, compatible remote cache.

Source

pub async fn get_blob_pack( &self, digests: &[CacheDigest], staging_dir: &Path, ) -> Result<Option<RemoteBlobPack>>

Download verified CAS objects using the server’s negotiated blob-pack extension.

None means the server does not support blob packs. Objects omitted by a supported server are absent from blobs, so callers can retry them through the ordinary single-blob endpoint.

Source

pub async fn get_action_result( &self, action: &CacheDigest, ) -> Result<Option<RemoteActionResult>>

Fetch and validate an action-result record, returning None on a miss.

Source

pub async fn put_action_result(&self, result: &RemoteActionResult) -> Result<()>

Canonically serialize and store an action-result record.

Source

pub async fn get_action_manifest( &self, key: &CacheDigest, ) -> Result<Option<RemoteActionManifest>>

Fetch a task action manifest and the entity tag needed to update it.

Source

pub async fn put_action_manifest( &self, key: &CacheDigest, bytes: &[u8], expected_etag: Option<&str>, ) -> Result<ManifestPutOutcome>

Store a task action manifest, optionally requiring an entity-tag match.

Source

pub async fn get_blob( &self, digest: &CacheDigest, media_type: &'static str, ) -> Result<Vec<u8>>

Download a small blob into memory and verify its digest.

Source

pub async fn get_blob_file( &self, digest: &CacheDigest, staging_dir: &Path, ) -> Result<NamedTempFile>

Download a blob to a temporary file and verify its digest.

Source

pub async fn put_blob(&self, upload: &BlobUpload) -> Result<()>

Verify and upload a content-addressed blob.

Auto Trait Implementations§

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.

Source§

impl<T> Instrument for T

Source§

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

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

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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 = !

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

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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