pub struct Sequence<'db> { /* private fields */ }Expand description
A handle for manipulating a sequence record stored in a Database.
Multiple threads may share a single Sequence handle safely; all cache
manipulation is protected by an internal Mutex. For higher throughput
open separate handles to the same database key.
§Example
ⓘ
use noxu_db::{SequenceConfig, DatabaseEntry};
let config = SequenceConfig::new().with_allow_create(true);
let key = DatabaseEntry::from_bytes(b"my_counter");
let seq = db.open_sequence(&key, config).unwrap();
let v1 = seq.get(None, 1).unwrap();
let v2 = seq.get(None, 1).unwrap();
assert_eq!(v2, v1 + 1);Implementations§
Source§impl<'db> Sequence<'db>
impl<'db> Sequence<'db>
Sourcepub fn get(&self, txn: Option<&Transaction>, delta: i32) -> Result<i64>
pub fn get(&self, txn: Option<&Transaction>, delta: i32) -> Result<i64>
Returns the next available element in the sequence and advances by
delta.
delta must be > 0 and must fit within the configured range.
The txn parameter, if provided, is used for the cache-refill database
write, making it participate in the caller’s transaction.
Sequence.get(Transaction txn, int delta).
Sourcepub fn get_stats(&self) -> SequenceStats
pub fn get_stats(&self) -> SequenceStats
Returns a snapshot of statistics for this handle.
Auto Trait Implementations§
impl<'db> !Freeze for Sequence<'db>
impl<'db> !RefUnwindSafe for Sequence<'db>
impl<'db> !UnwindSafe for Sequence<'db>
impl<'db> Send for Sequence<'db>
impl<'db> Sync for Sequence<'db>
impl<'db> Unpin for Sequence<'db>
impl<'db> UnsafeUnpin for Sequence<'db>
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