refactor(tvix): use io::Result for EvalIO
This is just a alias for Result<_, io::Error>, but shorter. Change-Id: I7c22f61b85e3014885a747b5c1e5abd11b0ef17d Reviewed-on: https://cl.tvl.fyi/c/depot/+/10327 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: raitobezarius <tvl@lahfa.xyz>
This commit is contained in:
parent
ad566999ca
commit
27c07b72c6
3 changed files with 22 additions and 22 deletions
|
@ -46,7 +46,7 @@ pub trait EvalIO {
|
|||
/// * checking whether a file added to the `NIX_PATH` actually exists when
|
||||
/// it is referenced in `<...>` brackets.
|
||||
/// * `builtins.pathExists :: path -> bool`
|
||||
fn path_exists(&self, path: &Path) -> Result<bool, io::Error>;
|
||||
fn path_exists(&self, path: &Path) -> io::Result<bool>;
|
||||
|
||||
/// Read the file at the specified path to a string.
|
||||
///
|
||||
|
@ -54,7 +54,7 @@ pub trait EvalIO {
|
|||
///
|
||||
/// * `builtins.readFile :: path -> string`
|
||||
/// * `builtins.import :: path -> any`
|
||||
fn read_to_string(&self, path: &Path) -> Result<String, io::Error>;
|
||||
fn read_to_string(&self, path: &Path) -> io::Result<String>;
|
||||
|
||||
/// Read the directory at the specified path and return the names
|
||||
/// of its entries associated with their [`FileType`].
|
||||
|
@ -62,7 +62,7 @@ pub trait EvalIO {
|
|||
/// This is used for the following language evaluation cases:
|
||||
///
|
||||
/// * `builtins.readDir :: path -> attrs<filename, filetype>`
|
||||
fn read_dir(&self, path: &Path) -> Result<Vec<(bytes::Bytes, FileType)>, io::Error>;
|
||||
fn read_dir(&self, path: &Path) -> io::Result<Vec<(bytes::Bytes, FileType)>>;
|
||||
|
||||
/// Import the given path. What this means depends on the implementation,
|
||||
/// for example for a `std::io`-based implementation this might be a no-op,
|
||||
|
@ -74,7 +74,7 @@ pub trait EvalIO {
|
|||
/// * string coercion of path literals (e.g. `/foo/bar`), which are expected
|
||||
/// to return a path
|
||||
/// * `builtins.toJSON` on a path literal, also expected to return a path
|
||||
fn import_path(&self, path: &Path) -> Result<PathBuf, io::Error>;
|
||||
fn import_path(&self, path: &Path) -> io::Result<PathBuf>;
|
||||
|
||||
/// Returns the root of the store directory, if such a thing
|
||||
/// exists in the evaluation context.
|
||||
|
@ -95,15 +95,15 @@ pub struct StdIO;
|
|||
// TODO: we might want to make this whole impl to be target_family = "unix".
|
||||
#[cfg(feature = "impure")]
|
||||
impl EvalIO for StdIO {
|
||||
fn path_exists(&self, path: &Path) -> Result<bool, io::Error> {
|
||||
fn path_exists(&self, path: &Path) -> io::Result<bool> {
|
||||
path.try_exists()
|
||||
}
|
||||
|
||||
fn read_to_string(&self, path: &Path) -> Result<String, io::Error> {
|
||||
fn read_to_string(&self, path: &Path) -> io::Result<String> {
|
||||
std::fs::read_to_string(path)
|
||||
}
|
||||
|
||||
fn read_dir(&self, path: &Path) -> Result<Vec<(bytes::Bytes, FileType)>, io::Error> {
|
||||
fn read_dir(&self, path: &Path) -> io::Result<Vec<(bytes::Bytes, FileType)>> {
|
||||
let mut result = vec![];
|
||||
|
||||
for entry in path.read_dir()? {
|
||||
|
@ -128,7 +128,7 @@ impl EvalIO for StdIO {
|
|||
|
||||
// this is a no-op for `std::io`, as the user can already refer to
|
||||
// the path directly
|
||||
fn import_path(&self, path: &Path) -> Result<PathBuf, io::Error> {
|
||||
fn import_path(&self, path: &Path) -> io::Result<PathBuf> {
|
||||
Ok(path.to_path_buf())
|
||||
}
|
||||
}
|
||||
|
@ -138,28 +138,28 @@ impl EvalIO for StdIO {
|
|||
pub struct DummyIO;
|
||||
|
||||
impl EvalIO for DummyIO {
|
||||
fn path_exists(&self, _: &Path) -> Result<bool, io::Error> {
|
||||
fn path_exists(&self, _: &Path) -> io::Result<bool> {
|
||||
Err(io::Error::new(
|
||||
io::ErrorKind::Unsupported,
|
||||
"I/O methods are not implemented in DummyIO",
|
||||
))
|
||||
}
|
||||
|
||||
fn read_to_string(&self, _: &Path) -> Result<String, io::Error> {
|
||||
fn read_to_string(&self, _: &Path) -> io::Result<String> {
|
||||
Err(io::Error::new(
|
||||
io::ErrorKind::Unsupported,
|
||||
"I/O methods are not implemented in DummyIO",
|
||||
))
|
||||
}
|
||||
|
||||
fn read_dir(&self, _: &Path) -> Result<Vec<(bytes::Bytes, FileType)>, io::Error> {
|
||||
fn read_dir(&self, _: &Path) -> io::Result<Vec<(bytes::Bytes, FileType)>> {
|
||||
Err(io::Error::new(
|
||||
io::ErrorKind::Unsupported,
|
||||
"I/O methods are not implemented in DummyIO",
|
||||
))
|
||||
}
|
||||
|
||||
fn import_path(&self, _: &Path) -> Result<PathBuf, io::Error> {
|
||||
fn import_path(&self, _: &Path) -> io::Result<PathBuf> {
|
||||
Err(io::Error::new(
|
||||
io::ErrorKind::Unsupported,
|
||||
"I/O methods are not implemented in DummyIO",
|
||||
|
|
|
@ -40,7 +40,7 @@ impl<T: EvalIO> EvalIO for TvixIO<T> {
|
|||
self.actual.store_dir()
|
||||
}
|
||||
|
||||
fn import_path(&self, path: &Path) -> Result<PathBuf, io::Error> {
|
||||
fn import_path(&self, path: &Path) -> io::Result<PathBuf> {
|
||||
let imported_path = self.actual.import_path(path)?;
|
||||
self.known_paths
|
||||
.borrow_mut()
|
||||
|
@ -49,7 +49,7 @@ impl<T: EvalIO> EvalIO for TvixIO<T> {
|
|||
Ok(imported_path)
|
||||
}
|
||||
|
||||
fn path_exists(&self, path: &Path) -> Result<bool, io::Error> {
|
||||
fn path_exists(&self, path: &Path) -> io::Result<bool> {
|
||||
if path.starts_with("/__corepkgs__") {
|
||||
return Ok(true);
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ impl<T: EvalIO> EvalIO for TvixIO<T> {
|
|||
self.actual.path_exists(path)
|
||||
}
|
||||
|
||||
fn read_to_string(&self, path: &Path) -> Result<String, io::Error> {
|
||||
fn read_to_string(&self, path: &Path) -> io::Result<String> {
|
||||
// Bundled version of corepkgs/fetchurl.nix. The counterpart
|
||||
// of this happens in [crate::configure_nix_path], where the `nix_path`
|
||||
// of the evaluation has `nix=/__corepkgs__` added to it.
|
||||
|
@ -74,7 +74,7 @@ impl<T: EvalIO> EvalIO for TvixIO<T> {
|
|||
self.actual.read_to_string(path)
|
||||
}
|
||||
|
||||
fn read_dir(&self, path: &Path) -> Result<Vec<(bytes::Bytes, FileType)>, io::Error> {
|
||||
fn read_dir(&self, path: &Path) -> io::Result<Vec<(bytes::Bytes, FileType)>> {
|
||||
self.actual.read_dir(path)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ impl TvixStoreIO {
|
|||
&self,
|
||||
store_path: &StorePath,
|
||||
sub_path: &Path,
|
||||
) -> Result<Option<Node>, io::Error> {
|
||||
) -> io::Result<Option<Node>> {
|
||||
let path_info_service = self.path_info_service.clone();
|
||||
let task = self.tokio_handle.spawn({
|
||||
let digest = *store_path.digest();
|
||||
|
@ -102,7 +102,7 @@ impl TvixStoreIO {
|
|||
|
||||
impl EvalIO for TvixStoreIO {
|
||||
#[instrument(skip(self), ret, err)]
|
||||
fn path_exists(&self, path: &Path) -> Result<bool, io::Error> {
|
||||
fn path_exists(&self, path: &Path) -> io::Result<bool> {
|
||||
if let Ok((store_path, sub_path)) =
|
||||
StorePath::from_absolute_path_full(&path.to_string_lossy())
|
||||
{
|
||||
|
@ -123,7 +123,7 @@ impl EvalIO for TvixStoreIO {
|
|||
}
|
||||
|
||||
#[instrument(skip(self), ret, err)]
|
||||
fn read_to_string(&self, path: &Path) -> Result<String, io::Error> {
|
||||
fn read_to_string(&self, path: &Path) -> io::Result<String> {
|
||||
if let Ok((store_path, sub_path)) =
|
||||
StorePath::from_absolute_path_full(&path.to_string_lossy())
|
||||
{
|
||||
|
@ -195,7 +195,7 @@ impl EvalIO for TvixStoreIO {
|
|||
}
|
||||
|
||||
#[instrument(skip(self), ret, err)]
|
||||
fn read_dir(&self, path: &Path) -> Result<Vec<(bytes::Bytes, FileType)>, io::Error> {
|
||||
fn read_dir(&self, path: &Path) -> io::Result<Vec<(bytes::Bytes, FileType)>> {
|
||||
if let Ok((store_path, sub_path)) =
|
||||
StorePath::from_absolute_path_full(&path.to_string_lossy())
|
||||
{
|
||||
|
@ -263,7 +263,7 @@ impl EvalIO for TvixStoreIO {
|
|||
}
|
||||
|
||||
#[instrument(skip(self), ret, err)]
|
||||
fn import_path(&self, path: &std::path::Path) -> Result<PathBuf, std::io::Error> {
|
||||
fn import_path(&self, path: &std::path::Path) -> io::Result<PathBuf> {
|
||||
let p = path.to_owned();
|
||||
let blob_service = self.blob_service.clone();
|
||||
let directory_service = self.directory_service.clone();
|
||||
|
@ -307,7 +307,7 @@ async fn import_path_with_pathinfo(
|
|||
directory_service: Arc<dyn DirectoryService>,
|
||||
path_info_service: Arc<dyn PathInfoService>,
|
||||
path: &std::path::Path,
|
||||
) -> Result<PathInfo, io::Error> {
|
||||
) -> io::Result<PathInfo> {
|
||||
// Call [import::ingest_path], which will walk over the given path and return a root_node.
|
||||
let root_node = import::ingest_path(blob_service.clone(), directory_service.clone(), path)
|
||||
.await
|
||||
|
|
Loading…
Reference in a new issue