rust/hg-core/src/revlog/changelog.rs
changeset 50370 b47a9316050a
parent 49937 750409505286
child 50371 b5dd6d6d6fa6
equal deleted inserted replaced
50365:82e5a9b1ef1e 50370:b47a9316050a
     7 use itertools::Itertools;
     7 use itertools::Itertools;
     8 use std::ascii::escape_default;
     8 use std::ascii::escape_default;
     9 use std::borrow::Cow;
     9 use std::borrow::Cow;
    10 use std::fmt::{Debug, Formatter};
    10 use std::fmt::{Debug, Formatter};
    11 
    11 
    12 /// A specialized `Revlog` to work with `changelog` data format.
    12 /// A specialized `Revlog` to work with changelog data format.
    13 pub struct Changelog {
    13 pub struct Changelog {
    14     /// The generic `revlog` format.
    14     /// The generic `revlog` format.
    15     pub(crate) revlog: Revlog,
    15     pub(crate) revlog: Revlog,
    16 }
    16 }
    17 
    17 
    21         let revlog =
    21         let revlog =
    22             Revlog::open(store_vfs, "00changelog.i", None, use_nodemap)?;
    22             Revlog::open(store_vfs, "00changelog.i", None, use_nodemap)?;
    23         Ok(Self { revlog })
    23         Ok(Self { revlog })
    24     }
    24     }
    25 
    25 
    26     /// Return the `ChangelogEntry` for the given node ID.
    26     /// Return the `ChangelogRevisionData` for the given node ID.
    27     pub fn data_for_node(
    27     pub fn data_for_node(
    28         &self,
    28         &self,
    29         node: NodePrefix,
    29         node: NodePrefix,
    30     ) -> Result<ChangelogRevisionData, RevlogError> {
    30     ) -> Result<ChangelogRevisionData, RevlogError> {
    31         let rev = self.revlog.rev_from_node(node)?;
    31         let rev = self.revlog.rev_from_node(node)?;
    32         self.data_for_rev(rev)
    32         self.data_for_rev(rev)
    33     }
    33     }
    34 
    34 
    35     /// Return the `RevlogEntry` of the given revision number.
    35     /// Return the `RevlogEntry` for the given revision number.
    36     pub fn entry_for_rev(
    36     pub fn entry_for_rev(
    37         &self,
    37         &self,
    38         rev: Revision,
    38         rev: Revision,
    39     ) -> Result<RevlogEntry, RevlogError> {
    39     ) -> Result<RevlogEntry, RevlogError> {
    40         self.revlog.get_entry(rev)
    40         self.revlog.get_entry(rev)
    41     }
    41     }
    42 
    42 
    43     /// Return the `ChangelogEntry` of the given revision number.
    43     /// Return the [`ChangelogRevisionData`] for the given revision number.
    44     pub fn data_for_rev(
    44     pub fn data_for_rev(
    45         &self,
    45         &self,
    46         rev: Revision,
    46         rev: Revision,
    47     ) -> Result<ChangelogRevisionData, RevlogError> {
    47     ) -> Result<ChangelogRevisionData, RevlogError> {
    48         let bytes = self.revlog.get_rev_data(rev)?;
    48         let bytes = self.revlog.get_rev_data(rev)?;