use std::fmt::{Display, Formatter};
use std::ops::Add;

use git2::{Commit, ObjectType, Oid, Reference, Repository, Tree};

use crate::gitdir::GitDir;
use crate::gitfile::GitFile;

#[derive(Debug)]
pub enum GitBrowseEntry<'a> {
    EGitFile(GitFile),
    EGitDir(GitDir<'a>)
}

impl Display for GitBrowseEntry<'_> {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        match self {
            GitBrowseEntry::EGitFile(file) => {write!(f, "{}", file)}
            GitBrowseEntry::EGitDir(dir) => {write!(f, "{}", dir)}
        }
    }
}