pub struct DaemonStore<C: AsyncReadExt + AsyncWriteExt + Unpin> {
pub proto: Proto,
/* private fields */
}
Expand description
Store backed by a nix-daemon
(or compatible store). Implements crate::Store
.
use nix_daemon::{Store, Progress, nix::DaemonStore};
let mut store = DaemonStore::builder()
.connect_unix("/nix/var/nix/daemon-socket/socket")
.await?;
let is_valid_path = store.is_valid_path("/nix/store/...").result().await?;
Fields§
§proto: Proto
Negotiated protocol version.
Implementations§
Source§impl DaemonStore<UnixStream>
impl DaemonStore<UnixStream>
Sourcepub fn builder() -> DaemonStoreBuilder
pub fn builder() -> DaemonStoreBuilder
Returns a Builder.
Trait Implementations§
Source§impl<C: Debug + AsyncReadExt + AsyncWriteExt + Unpin> Debug for DaemonStore<C>
impl<C: Debug + AsyncReadExt + AsyncWriteExt + Unpin> Debug for DaemonStore<C>
Source§impl<C: AsyncReadExt + AsyncWriteExt + Unpin + Send> Store for DaemonStore<C>
impl<C: AsyncReadExt + AsyncWriteExt + Unpin + Send> Store for DaemonStore<C>
type Error = Error
Source§fn is_valid_path<S: AsRef<str> + Send + Sync + Debug>(
&mut self,
path: S,
) -> impl Progress<T = bool, Error = Self::Error>
fn is_valid_path<S: AsRef<str> + Send + Sync + Debug>( &mut self, path: S, ) -> impl Progress<T = bool, Error = Self::Error>
Returns whether a store path is valid.
Source§fn 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.Source§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 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.
Source§fn 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.
Source§fn 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.
Source§fn 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.
Source§fn 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.
Source§fn 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.Source§fn 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.
Source§fn 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.Source§fn 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.
Source§fn 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.
Source§fn 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.Source§fn 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.
Source§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 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.Source§fn 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>
Auto Trait Implementations§
impl<C> Freeze for DaemonStore<C>where
C: Freeze,
impl<C> RefUnwindSafe for DaemonStore<C>where
C: RefUnwindSafe,
impl<C> Send for DaemonStore<C>where
C: Send,
impl<C> Sync for DaemonStore<C>where
C: Sync,
impl<C> Unpin for DaemonStore<C>
impl<C> UnwindSafe for DaemonStore<C>where
C: UnwindSafe,
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> 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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.