pub struct ApprovalsRepo<'a> { /* private fields */ }Implementations§
Source§impl ApprovalsRepo<'_>
impl ApprovalsRepo<'_>
pub fn create(&self, new: NewApproval) -> Result<ApprovalRecord, Error>
pub fn get(&self, id: &str) -> Result<Option<ApprovalRecord>, Error>
pub fn decide(&self, id: &str, user_decision: &str) -> Result<(), Error>
Sourcepub fn claim(&self, id: &str) -> Result<bool, Error>
pub fn claim(&self, id: &str) -> Result<bool, Error>
Atomically claim an undecided approval for replay (#118). Sets
user_decision='approving' only when it is currently NULL and
un-archived, and reports whether THIS caller won the claim. Two concurrent
approve <id> calls race this single UPDATE; exactly one sees
rows_affected == 1 and runs the un-rollback-able effect, the other sees
false and bails — so the effect can’t fire twice. A claim that crashes
before finalizing is reset to NULL by the daemon’s startup reconcile.
Sourcepub fn release_claim(&self, id: &str) -> Result<(), Error>
pub fn release_claim(&self, id: &str) -> Result<(), Error>
Release a claim taken by Self::claim back to undecided, so the action
stays re-runnable after the replay effect failed.
Sourcepub fn finalize_claimed(
&self,
id: &str,
user_decision: &str,
) -> Result<(), Error>
pub fn finalize_claimed( &self, id: &str, user_decision: &str, ) -> Result<(), Error>
Finalize a claimed approval’s decision (the approving → terminal-value
transition that Self::decide’s WHERE user_decision IS NULL can’t make).
pub fn list_pending(&self) -> Result<Vec<ApprovalRecord>, Error>
pub fn list_pending_all(&self) -> Result<Vec<ApprovalRecord>, Error>
pub fn list_all(&self, limit: usize) -> Result<Vec<ApprovalRecord>, Error>
pub fn archive(&self, ids: &[String], reason: &str) -> Result<usize, Error>
pub fn count_archived(&self) -> Result<usize, Error>
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for ApprovalsRepo<'a>
impl<'a> !Send for ApprovalsRepo<'a>
impl<'a> !Sync for ApprovalsRepo<'a>
impl<'a> !UnwindSafe for ApprovalsRepo<'a>
impl<'a> Freeze for ApprovalsRepo<'a>
impl<'a> Unpin for ApprovalsRepo<'a>
impl<'a> UnsafeUnpin for ApprovalsRepo<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more