aboutsummaryrefslogtreecommitdiff
path: root/supergit/src/raw/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'supergit/src/raw/mod.rs')
-rw-r--r--supergit/src/raw/mod.rs25
1 files changed, 14 insertions, 11 deletions
diff --git a/supergit/src/raw/mod.rs b/supergit/src/raw/mod.rs
index 98602ca..7bf6c0a 100644
--- a/supergit/src/raw/mod.rs
+++ b/supergit/src/raw/mod.rs
@@ -3,13 +3,14 @@
mod branch_walk;
mod tree_walk;
+use crate::{Branch, BranchCommit};
use git2::{self, Repository};
-pub(crate) type RawResult<T> = Result<T, RawError>;
+pub type RawResult<T> = Result<T, RawError>;
/// An error abstraction for raw git operations
#[derive(Debug)]
-pub(crate) enum RawError {
+pub enum RawError {
AllBad,
}
@@ -19,24 +20,26 @@ impl From<git2::Error> for RawError {
}
}
+/// Represent a raw branch
+pub struct RawBranch {
+ name: String,
+ head: String,
+}
+
/// Wrap a libgit2 repository to provide an API fascade
-pub(crate) struct RawRepository {
+pub struct RawRepository {
inner: Repository,
}
impl RawRepository {
- pub(crate) fn open(path: &str) -> RawResult<Self> {
+ pub fn open(path: &str) -> RawResult<Self> {
Ok(Self {
inner: Repository::open(path)?,
})
}
- /// Sync the backing storage with the backing git repo
- ///
- /// This function can be invoked manually, but should be invoked
- /// basically every time your program expects changes to have
- /// happened. Polling this function is not recommended.
- pub(crate) fn update(&self) -> RawResult<()> {
- Ok(())
+ /// Parse branch data from repository
+ pub fn parse_branches(&self) -> RawResult<Vec<RawBranch>> {
+ todo!()
}
}