rust/hg-core/src/revlog/manifest.rs
changeset 46167 8a4914397d02
parent 46134 cc6faec62cb7
child 46431 645ee7225fab
equal deleted inserted replaced
46166:c511fef30290 46167:8a4914397d02
       
     1 use crate::repo::Repo;
     1 use crate::revlog::revlog::{Revlog, RevlogError};
     2 use crate::revlog::revlog::{Revlog, RevlogError};
     2 use crate::revlog::NodePrefixRef;
     3 use crate::revlog::NodePrefixRef;
     3 use crate::revlog::Revision;
     4 use crate::revlog::Revision;
     4 use crate::utils::hg_path::HgPath;
     5 use crate::utils::hg_path::HgPath;
     5 use std::path::Path;
       
     6 
     6 
     7 /// A specialized `Revlog` to work with `manifest` data format.
     7 /// A specialized `Revlog` to work with `manifest` data format.
     8 pub struct Manifest {
     8 pub struct Manifest {
     9     /// The generic `revlog` format.
     9     /// The generic `revlog` format.
    10     revlog: Revlog,
    10     revlog: Revlog,
    11 }
    11 }
    12 
    12 
    13 impl Manifest {
    13 impl Manifest {
    14     /// Open the `manifest` of a repository given by its root.
    14     /// Open the `manifest` of a repository given by its root.
    15     pub fn open(root: &Path) -> Result<Self, RevlogError> {
    15     pub fn open(repo: &Repo) -> Result<Self, RevlogError> {
    16         let index_file = root.join(".hg/store/00manifest.i");
    16         let revlog = Revlog::open(repo, "00manifest.i", None)?;
    17         let revlog = Revlog::open(&index_file, None)?;
       
    18         Ok(Self { revlog })
    17         Ok(Self { revlog })
    19     }
    18     }
    20 
    19 
    21     /// Return the `ManifestEntry` of a given node id.
    20     /// Return the `ManifestEntry` of a given node id.
    22     pub fn get_node(
    21     pub fn get_node(