Skip to main content

DavLockSystem

Trait DavLockSystem 

Source
pub trait DavLockSystem:
    Debug
    + Send
    + Sync
    + DynClone {
    // Required methods
    fn lock(
        &self,
        path: &DavPath,
        principal: Option<&str>,
        owner: Option<&Element>,
        timeout: Option<Duration>,
        shared: bool,
        deep: bool,
    ) -> LsFuture<'_, Result<DavLock, DavLock>>;
    fn unlock(
        &self,
        path: &DavPath,
        token: &str,
    ) -> LsFuture<'_, Result<(), ()>>;
    fn refresh(
        &self,
        path: &DavPath,
        token: &str,
        timeout: Option<Duration>,
    ) -> LsFuture<'_, Result<DavLock, ()>>;
    fn check(
        &self,
        path: &DavPath,
        principal: Option<&str>,
        ignore_principal: bool,
        deep: bool,
        submitted_tokens: &[String],
    ) -> LsFuture<'_, Result<(), DavLock>>;
    fn discover(&self, path: &DavPath) -> LsFuture<'_, Vec<DavLock>>;
    fn delete(&self, path: &DavPath) -> LsFuture<'_, Result<(), ()>>;
}
Expand description

The trait that defines a locksystem.

Required Methods§

Source

fn lock( &self, path: &DavPath, principal: Option<&str>, owner: Option<&Element>, timeout: Option<Duration>, shared: bool, deep: bool, ) -> LsFuture<'_, Result<DavLock, DavLock>>

Lock a node. Returns Ok(new_lock) if succeeded, or Err(conflicting_lock) if failed.

Source

fn unlock(&self, path: &DavPath, token: &str) -> LsFuture<'_, Result<(), ()>>

Unlock a node. Returns Ok(()) if succeeded, Err (()) if failed (because lock doesn’t exist)

Source

fn refresh( &self, path: &DavPath, token: &str, timeout: Option<Duration>, ) -> LsFuture<'_, Result<DavLock, ()>>

Refresh lock. Returns updated lock if succeeded.

Source

fn check( &self, path: &DavPath, principal: Option<&str>, ignore_principal: bool, deep: bool, submitted_tokens: &[String], ) -> LsFuture<'_, Result<(), DavLock>>

Check if node is locked and if so, if we own all the locks. If not, returns as Err one conflicting lock.

Source

fn discover(&self, path: &DavPath) -> LsFuture<'_, Vec<DavLock>>

Find and return all locks that cover a given path.

Source

fn delete(&self, path: &DavPath) -> LsFuture<'_, Result<(), ()>>

Delete all locks at this path and below (after MOVE or DELETE)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§