pub async fn open(root: impl Into<PathBuf>) -> Result<Self, IoError> {
        let root = root.into();
        let config = Config::from_file(root.join("config.json")).await?;
        let crates = utils::crate_names(&root).await?;

        let tree = Self {
            root,
            config,
            crates,
        };

        Ok(tree)
    }
/// Open an existing index tree at the given root path.
///
/// # Errors
///
/// This method can fail if the given path does not exist, or the config
/// file cannot be read.
Open an existing index tree at the given root path.
Open an existing index tree at the given root path .
pub async fn open(root: impl Into<PathBuf>) -> Result<Self, IoError> {
        let root = root.into();
        let config = Config::from_file(root.join("config.json")).await?;
        let crates = utils::crate_names(&root).await?;
        let tree = Self {
            root,
            config,
            crates,
        };
        Ok(tree)
    }
pub async fn open ( root : impl Into < PathBuf > ) -> Result < Self , IoError > { let root = root . into ( ) ; let config = Config :: from_file ( root . join ( " " ) ) . await ? ; let crates = utils :: crate_names ( & root ) . await ? ; let tree = Self { root , config , crates , } ; Ok ( tree ) }
Open an existing index tree at the given root path.
Open an existing index tree at the given root path .
root
impl Into<PathBuf>
errors
This method can fail if the given path does not exist, or the config
file cannot be read.
This method can fail if the given path does not exist or the config file cannot be read .