mod lock;
mod fair_lock;
mod multi_lock;
mod red_lock;
mod read_write;
mod watchdog;
pub use fair_lock::*;
pub use lock::*;
pub use multi_lock::*;
pub use read_write::*;
pub use red_lock::*;
pub use watchdog::*;
use crate::{RedissonResult};
use std::time::Duration;
pub trait RLockable {
fn get_lock(&self) -> RLock;
fn get_fair_lock(&self) -> RFairLock;
fn lock(&self) -> RedissonResult<()>;
fn try_lock(&self) -> RedissonResult<bool>;
fn try_lock_timeout(&self, wait_time: Duration) -> RedissonResult<bool>;
fn lock_lease(&self, lease_time: Duration) -> RedissonResult<()>;
fn unlock(&self) -> RedissonResult<bool>;
fn force_unlock(&self) -> RedissonResult<bool>;
fn is_locked(&self) -> RedissonResult<bool>;
fn is_held_by_current_thread(&self) -> bool;
}