git2/
revspec.rs

1use crate::{Object, RevparseMode};
2
3/// A revspec represents a range of revisions within a repository.
4pub struct Revspec<'repo> {
5    from: Option<Object<'repo>>,
6    to: Option<Object<'repo>>,
7    mode: RevparseMode,
8}
9
10impl<'repo> Revspec<'repo> {
11    /// Assembles a new revspec from the from/to components.
12    pub fn from_objects(
13        from: Option<Object<'repo>>,
14        to: Option<Object<'repo>>,
15        mode: RevparseMode,
16    ) -> Revspec<'repo> {
17        Revspec { from, to, mode }
18    }
19
20    /// Access the `from` range of this revspec.
21    pub fn from(&self) -> Option<&Object<'repo>> {
22        self.from.as_ref()
23    }
24
25    /// Access the `to` range of this revspec.
26    pub fn to(&self) -> Option<&Object<'repo>> {
27        self.to.as_ref()
28    }
29
30    /// Returns the intent of the revspec.
31    pub fn mode(&self) -> RevparseMode {
32        self.mode
33    }
34}