pub trait PathInfoService: Send + Sync + 'static {
type ListStream: Stream<Item = Result<PathInfo, Status>> + Send + 'static;
// Required methods
fn get<'life0, 'async_trait>(
&'life0 self,
request: Request<GetPathInfoRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<PathInfo>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn put<'life0, 'async_trait>(
&'life0 self,
request: Request<PathInfo>,
) -> Pin<Box<dyn Future<Output = Result<Response<PathInfo>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn calculate_nar<'life0, 'async_trait>(
&'life0 self,
request: Request<Node>,
) -> Pin<Box<dyn Future<Output = Result<Response<CalculateNarResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn list<'life0, 'async_trait>(
&'life0 self,
request: Request<ListPathInfoRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ListStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}
Expand description
Generated trait containing gRPC methods that should be implemented for use with PathInfoServiceServer.
Required Associated Types§
Required Methods§
sourcefn get<'life0, 'async_trait>(
&'life0 self,
request: Request<GetPathInfoRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<PathInfo>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get<'life0, 'async_trait>(
&'life0 self,
request: Request<GetPathInfoRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<PathInfo>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Return a PathInfo message matching the criteria specified in the GetPathInfoRequest message.
sourcefn put<'life0, 'async_trait>(
&'life0 self,
request: Request<PathInfo>,
) -> Pin<Box<dyn Future<Output = Result<Response<PathInfo>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put<'life0, 'async_trait>(
&'life0 self,
request: Request<PathInfo>,
) -> Pin<Box<dyn Future<Output = Result<Response<PathInfo>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Upload a PathInfo object to the remote end. It MUST not return until the PathInfo object has been written on the the remote end.
The remote end MAY check if a potential DirectoryNode has already been uploaded.
Uploading clients SHOULD obviously not steer other machines to try to substitute before from the remote end before having finished uploading PathInfo, Directories and Blobs. The returned PathInfo object MAY contain additional narinfo signatures, but is otherwise left untouched.
sourcefn calculate_nar<'life0, 'async_trait>(
&'life0 self,
request: Request<Node>,
) -> Pin<Box<dyn Future<Output = Result<Response<CalculateNarResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn calculate_nar<'life0, 'async_trait>(
&'life0 self,
request: Request<Node>,
) -> Pin<Box<dyn Future<Output = Result<Response<CalculateNarResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Calculate the NAR representation of the contents specified by the root_node. The calculation SHOULD be cached server-side for subsequent requests.
All references (to blobs or Directory messages) MUST already exist in the store.
The method can be used to produce a Nix fixed-output path, which contains the (compressed) sha256 of the NAR content representation in the root_node name (suffixed with the name).
It can also be used to calculate arbitrary NAR hashes of output paths, in case a legacy Nix Binary Cache frontend is provided.
sourcefn list<'life0, 'async_trait>(
&'life0 self,
request: Request<ListPathInfoRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ListStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
request: Request<ListPathInfoRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ListStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Return a stream of PathInfo messages matching the criteria specified in ListPathInfoRequest.