use crate::{Object, RevparseMode};
/// A revspec represents a range of revisions within a repository.
pub struct Revspec<'repo> {
from: Option<Object<'repo>>,
to: Option<Object<'repo>>,
mode: RevparseMode,
}
impl<'repo> Revspec<'repo> {
/// Assembles a new revspec from the from/to components.
pub fn from_objects(
from: Option<Object<'repo>>,
to: Option<Object<'repo>>,
mode: RevparseMode,
) -> Revspec<'repo> {
Revspec { from, to, mode }
}
/// Access the `from` range of this revspec.
pub fn from(&self) -> Option<&Object<'repo>> {
self.from.as_ref()
}
/// Access the `to` range of this revspec.
pub fn to(&self) -> Option<&Object<'repo>> {
self.to.as_ref()
}
/// Returns the intent of the revspec.
pub fn mode(&self) -> RevparseMode {
self.mode
}
}