imag/libimagstore/src/hook/accessor.rs

28 lines
665 B
Rust
Raw Normal View History

2016-03-04 15:43:01 +00:00
use hook::result::HookResult;
use store::FileLockEntry;
2016-03-04 15:48:03 +00:00
use storeid::StoreId;
pub trait StoreIdAccessor : Send + Sync {
fn access(&self, &StoreId) -> HookResult<()>;
}
2016-03-04 15:43:01 +00:00
pub trait MutableHookDataAccessor : Send + Sync {
fn access_mut(&self, &mut FileLockEntry) -> HookResult<()>;
}
pub trait NonMutableHookDataAccessor : Send + Sync {
fn access(&self, &FileLockEntry) -> HookResult<()>;
}
2016-03-04 20:18:04 +00:00
pub enum HookDataAccessor<'a> {
StoreIdAccess(&'a StoreIdAccessor),
MutableAccess(&'a MutableHookDataAccessor),
NonMutableAccess(&'a NonMutableHookDataAccessor),
2016-03-04 15:43:01 +00:00
}
pub trait HookDataAccessorProvider {
2016-03-04 20:18:04 +00:00
fn accessor(&self) -> HookDataAccessor;
2016-03-04 15:43:01 +00:00
}