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