rwf 0.2.1

Framework for building web applications in the Rust programming language
Documentation
//! Implements `FOR UPDATE` SQL locking primitive.
use super::ToSql;

#[derive(Debug, Default, Clone)]
pub struct Lock {
    lock: bool,
    skip_locked: bool,
}

impl Lock {
    pub fn new() -> Self {
        Self {
            lock: true,
            skip_locked: false,
        }
    }

    pub fn skip_locked(mut self) -> Self {
        self.skip_locked = true;
        self
    }
}

impl ToSql for Lock {
    fn to_sql(&self) -> String {
        let lock = if self.lock { " FOR UPDATE" } else { "" };
        let skip_locked = if self.skip_locked { " SKIP LOCKED" } else { "" };
        format!("{}{}", lock, skip_locked)
    }
}