use gix::hash::ObjectId; use crate::refs::types::{BranchInfo, HeadInfo, RefInfo, RefType, UpdateRefResult}; pub trait RefsOps { fn refs_list(&self) -> Result, crate::Error>; fn refs_list_filtered(&self, pattern: &str) -> Result, crate::Error>; fn refs_get(&self, name: &str) -> Result; fn refs_resolve(&self, name: &str) -> Result; fn refs_update( &self, name: &str, new: ObjectId, expected: Option, ) -> Result; fn refs_delete(&self, name: &str) -> Result<(), crate::Error>; fn refs_validate_name(&self, name: &str) -> Result<(), crate::Error>; fn refs_is_branch_protected(&self, branch: &str) -> Result; fn refs_head(&self) -> Result; fn refs_branches(&self, skip: u64, limit: u64) -> Result, crate::Error>; fn refs_is_object_in_ref(&self, object: &ObjectId, refname: &str) -> Result; fn refs_classify(&self, name: &str) -> RefType; }