refactor(nix-compat/store_path): make StorePath generic on S
Similar to how cl/12253 already did this for `Signature`, we apply the same logic to `StorePath`. `StorePathRef<'a>'` is now a `StorePath<&'a str>`, and there's less redundant code for the two different implementation. `.as_ref()` returns a `StorePathRef<'_>`, `.to_owned()` gives a `StorePath<String>` (for now). I briefly thought about only publicly exporting `StorePath<String>` as `StorePath`, but the diff is not too large and this will make it easier to gradually introduce more flexibility in which store paths to accept. Also, remove some silliness in `StorePath::from_absolute_path_full`, which now doesn't allocate anymore. Change-Id: Ife8843857a1a0a3a99177ca997649fd45b8198e6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12258 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com>
This commit is contained in:
parent
413135b925
commit
2beabe968c
15 changed files with 301 additions and 315 deletions
|
|
@ -1,5 +1,6 @@
|
|||
use futures::stream::BoxStream;
|
||||
use futures::StreamExt;
|
||||
use nix_compat::store_path::StorePathRef;
|
||||
use tonic::async_trait;
|
||||
use tvix_castore::fs::{RootNodes, TvixStoreFs};
|
||||
use tvix_castore::{blobservice::BlobService, directoryservice::DirectoryService};
|
||||
|
|
@ -48,7 +49,7 @@ where
|
|||
T: AsRef<dyn PathInfoService> + Send + Sync,
|
||||
{
|
||||
async fn get_by_basename(&self, name: &PathComponent) -> Result<Option<Node>, Error> {
|
||||
let Ok(store_path) = nix_compat::store_path::StorePath::from_bytes(name.as_ref()) else {
|
||||
let Ok(store_path) = StorePathRef::from_bytes(name.as_ref()) else {
|
||||
return Ok(None);
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue