pub struct ClientBudget {
pub time_limit: Option<Duration>,
pub max_bytes_read: Option<u64>,
pub max_bytes_written: Option<u64>,
pub clock: Option<Arc<dyn Clock>>,
}Expand description
Client-side limits applied to a single transaction attempt.
Each field is optional, None meaning “no limit”. A default ClientBudget
limits nothing.
See the module documentation: these limits are computed by the binding from what it observes, not enforced by FoundationDB.
§Example
let trx = db.create_trx()?;
trx.set_client_budget(ClientBudget {
time_limit: Some(Duration::from_secs(2)),
max_bytes_read: Some(10 * 1024 * 1024),
..ClientBudget::default()
});Fields§
§time_limit: Option<Duration>Maximum time an attempt may spend, measured from the start of the attempt
with the clock of this budget.
max_bytes_read: Option<u64>Maximum number of bytes read by an attempt, keys and values summed.
max_bytes_written: Option<u64>Maximum number of bytes written by an attempt, keys, values and mutation parameters summed.
clock: Option<Arc<dyn Clock>>Where time_limit reads time from, None meaning
the WallClock.
Set it with with_clock to keep time budgets
deterministic, see the module documentation.
Implementations§
Source§impl ClientBudget
impl ClientBudget
Sourcepub fn with_clock(self, clock: impl Clock + 'static) -> Self
pub fn with_clock(self, clock: impl Clock + 'static) -> Self
Measures the attempts with clock instead of the WallClock.
Trait Implementations§
Source§impl Clone for ClientBudget
impl Clone for ClientBudget
Source§fn clone(&self) -> ClientBudget
fn clone(&self) -> ClientBudget
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ClientBudget
impl Debug for ClientBudget
Source§impl Default for ClientBudget
impl Default for ClientBudget
Source§fn default() -> ClientBudget
fn default() -> ClientBudget
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ClientBudget
impl !RefUnwindSafe for ClientBudget
impl Send for ClientBudget
impl Sync for ClientBudget
impl Unpin for ClientBudget
impl !UnwindSafe for ClientBudget
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