pub trait Store {
type Error: From<Error> + Send + Sync;
Show 16 methods
// Required methods
fn is_valid_path<P: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: P,
) -> impl Progress<T = bool, Error = Self::Error>;
fn has_substitutes<P: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: P,
) -> impl Progress<T = bool, Error = Self::Error>;
fn add_to_store<SN: AsRef<str> + Send + Sync + Debug, SC: AsRef<str> + Send + Sync + Debug, Refs, R>(
&mut self,
name: SN,
cam_str: SC,
refs: Refs,
repair: bool,
source: R,
) -> impl Progress<T = (String, PathInfo), Error = Self::Error>
where Refs: IntoIterator + Send + Debug,
Refs::IntoIter: ExactSizeIterator + Send,
Refs::Item: AsRef<str> + Send + Sync,
R: AsyncReadExt + Unpin + Send + Debug;
fn build_paths<Paths>(
&mut self,
paths: Paths,
mode: BuildMode,
) -> impl Progress<T = (), Error = Self::Error>
where Paths: IntoIterator + Send + Debug,
Paths::IntoIter: ExactSizeIterator + Send,
Paths::Item: AsRef<str> + Send + Sync;
fn ensure_path<Path: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: Path,
) -> impl Progress<T = (), Error = Self::Error>;
fn add_temp_root<Path: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: Path,
) -> impl Progress<T = (), Error = Self::Error>;
fn add_indirect_root<Path: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: Path,
) -> impl Progress<T = (), Error = Self::Error>;
fn find_roots(
&mut self,
) -> impl Progress<T = HashMap<String, String>, Error = Self::Error>;
fn set_options(
&mut self,
opts: ClientSettings,
) -> impl Progress<T = (), Error = Self::Error>;
fn query_pathinfo<S: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: S,
) -> impl Progress<T = Option<PathInfo>, Error = Self::Error>;
fn query_valid_paths<Paths>(
&mut self,
paths: Paths,
use_substituters: bool,
) -> impl Progress<T = Vec<String>, Error = Self::Error>
where Paths: IntoIterator + Send + Debug,
Paths::IntoIter: ExactSizeIterator + Send,
Paths::Item: AsRef<str> + Send + Sync;
fn query_substitutable_paths<Paths>(
&mut self,
paths: Paths,
) -> impl Progress<T = Vec<String>, Error = Self::Error>
where Paths: IntoIterator + Send + Debug,
Paths::IntoIter: ExactSizeIterator + Send,
Paths::Item: AsRef<str> + Send + Sync;
fn query_valid_derivers<S: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: S,
) -> impl Progress<T = Vec<String>, Error = Self::Error>;
fn query_missing<Ps>(
&mut self,
paths: Ps,
) -> impl Progress<T = Missing, Error = Self::Error>
where Ps: IntoIterator + Send + Debug,
Ps::IntoIter: ExactSizeIterator + Send,
Ps::Item: AsRef<str> + Send + Sync;
fn query_derivation_output_map<P: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: P,
) -> impl Progress<T = HashMap<String, String>, Error = Self::Error>;
fn build_paths_with_results<Ps>(
&mut self,
paths: Ps,
mode: BuildMode,
) -> impl Progress<T = HashMap<String, BuildResult>, Error = Self::Error>
where Ps: IntoIterator + Send + Debug,
Ps::IntoIter: ExactSizeIterator + Send,
Ps::Item: AsRef<str> + Send + Sync;
}Expand description
Generic interface to a Nix store.
See nix::DaemonStore for an implementation that talks to a CppNix (compatible) daemon.
Required Associated Types§
Required Methods§
Sourcefn is_valid_path<P: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: P,
) -> impl Progress<T = bool, Error = Self::Error>
fn is_valid_path<P: AsRef<str> + Send + Sync + Debug>( &mut self, path: P, ) -> impl Progress<T = bool, Error = Self::Error>
Returns whether a store path is valid.
Sourcefn has_substitutes<P: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: P,
) -> impl Progress<T = bool, Error = Self::Error>
fn has_substitutes<P: AsRef<str> + Send + Sync + Debug>( &mut self, path: P, ) -> impl Progress<T = bool, Error = Self::Error>
Returns whether Self::query_substitutable_paths() would return anything.
Sourcefn add_to_store<SN: AsRef<str> + Send + Sync + Debug, SC: AsRef<str> + Send + Sync + Debug, Refs, R>(
&mut self,
name: SN,
cam_str: SC,
refs: Refs,
repair: bool,
source: R,
) -> impl Progress<T = (String, PathInfo), Error = Self::Error>where
Refs: IntoIterator + Send + Debug,
Refs::IntoIter: ExactSizeIterator + Send,
Refs::Item: AsRef<str> + Send + Sync,
R: AsyncReadExt + Unpin + Send + Debug,
fn add_to_store<SN: AsRef<str> + Send + Sync + Debug, SC: AsRef<str> + Send + Sync + Debug, Refs, R>(
&mut self,
name: SN,
cam_str: SC,
refs: Refs,
repair: bool,
source: R,
) -> impl Progress<T = (String, PathInfo), Error = Self::Error>where
Refs: IntoIterator + Send + Debug,
Refs::IntoIter: ExactSizeIterator + Send,
Refs::Item: AsRef<str> + Send + Sync,
R: AsyncReadExt + Unpin + Send + Debug,
Adds a file to the store.
Sourcefn build_paths<Paths>(
&mut self,
paths: Paths,
mode: BuildMode,
) -> impl Progress<T = (), Error = Self::Error>
fn build_paths<Paths>( &mut self, paths: Paths, mode: BuildMode, ) -> impl Progress<T = (), Error = Self::Error>
Builds the specified paths.
Sourcefn ensure_path<Path: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: Path,
) -> impl Progress<T = (), Error = Self::Error>
fn ensure_path<Path: AsRef<str> + Send + Sync + Debug>( &mut self, path: Path, ) -> impl Progress<T = (), Error = Self::Error>
Ensure the specified store path exists.
Sourcefn add_temp_root<Path: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: Path,
) -> impl Progress<T = (), Error = Self::Error>
fn add_temp_root<Path: AsRef<str> + Send + Sync + Debug>( &mut self, path: Path, ) -> impl Progress<T = (), Error = Self::Error>
Creates a temporary GC root, which persists until the client disconnects.
Sourcefn add_indirect_root<Path: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: Path,
) -> impl Progress<T = (), Error = Self::Error>
fn add_indirect_root<Path: AsRef<str> + Send + Sync + Debug>( &mut self, path: Path, ) -> impl Progress<T = (), Error = Self::Error>
Creates a persistent GC root. This is what’s normally meant by a GC root.
Sourcefn find_roots(
&mut self,
) -> impl Progress<T = HashMap<String, String>, Error = Self::Error>
fn find_roots( &mut self, ) -> impl Progress<T = HashMap<String, String>, Error = Self::Error>
Returns the (link, target) of all known GC roots.
Sourcefn set_options(
&mut self,
opts: ClientSettings,
) -> impl Progress<T = (), Error = Self::Error>
fn set_options( &mut self, opts: ClientSettings, ) -> impl Progress<T = (), Error = Self::Error>
Applies client options. This changes the behaviour of future commands.
Sourcefn query_pathinfo<S: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: S,
) -> impl Progress<T = Option<PathInfo>, Error = Self::Error>
fn query_pathinfo<S: AsRef<str> + Send + Sync + Debug>( &mut self, path: S, ) -> impl Progress<T = Option<PathInfo>, Error = Self::Error>
Returns a PathInfo struct for the given path.
Sourcefn query_valid_paths<Paths>(
&mut self,
paths: Paths,
use_substituters: bool,
) -> impl Progress<T = Vec<String>, Error = Self::Error>
fn query_valid_paths<Paths>( &mut self, paths: Paths, use_substituters: bool, ) -> impl Progress<T = Vec<String>, Error = Self::Error>
Returns which of the passed paths are valid.
Sourcefn query_substitutable_paths<Paths>(
&mut self,
paths: Paths,
) -> impl Progress<T = Vec<String>, Error = Self::Error>
fn query_substitutable_paths<Paths>( &mut self, paths: Paths, ) -> impl Progress<T = Vec<String>, Error = Self::Error>
Returns paths which can be substituted.
Sourcefn query_valid_derivers<S: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: S,
) -> impl Progress<T = Vec<String>, Error = Self::Error>
fn query_valid_derivers<S: AsRef<str> + Send + Sync + Debug>( &mut self, path: S, ) -> impl Progress<T = Vec<String>, Error = Self::Error>
Returns a list of valid derivers for a path.
This is sort of like PathInfo::deriver, but it doesn’t lie to you.
Sourcefn query_missing<Ps>(
&mut self,
paths: Ps,
) -> impl Progress<T = Missing, Error = Self::Error>
fn query_missing<Ps>( &mut self, paths: Ps, ) -> impl Progress<T = Missing, Error = Self::Error>
Takes a list of paths and queries which would be built, substituted or unknown, along with an estimate of the cumulative download and NAR sizes.
Sourcefn query_derivation_output_map<P: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: P,
) -> impl Progress<T = HashMap<String, String>, Error = Self::Error>
fn query_derivation_output_map<P: AsRef<str> + Send + Sync + Debug>( &mut self, path: P, ) -> impl Progress<T = HashMap<String, String>, Error = Self::Error>
Returns a map of (output, store path) for the given derivation.
Sourcefn build_paths_with_results<Ps>(
&mut self,
paths: Ps,
mode: BuildMode,
) -> impl Progress<T = HashMap<String, BuildResult>, Error = Self::Error>
fn build_paths_with_results<Ps>( &mut self, paths: Ps, mode: BuildMode, ) -> impl Progress<T = HashMap<String, BuildResult>, Error = Self::Error>
Like Self::build_paths(), but returns a BuildResult for each entry in paths.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.