pub struct ResourceContract {
pub task_id_hash: u64,
pub token_ceiling: u64,
pub cycles_remaining: u64,
pub tokens_burned: u64,
}Expand description
The live resource contract + hardware circuit breakers a granted task runs under
(established by 0x71). Deterministic, zero-heap.
Fields§
§task_id_hash: u64§token_ceiling: u64Declared token ceiling — the anti-usury bound for Self::burn_tokens.
cycles_remaining: u64Decrementing clock-cycle breaker.
tokens_burned: u64Summation tracker of tokens burned so far.
Implementations§
Source§impl ResourceContract
impl ResourceContract
Sourcepub fn tick_cycles(&mut self, n: u64) -> bool
pub fn tick_cycles(&mut self, n: u64) -> bool
Charge n clock cycles against the decrementing breaker. Returns false (breaker
tripped) when the budget would underflow — the caller must halt the task.
Sourcepub fn burn_tokens(&mut self, n: u64) -> Result<(), UsuryError>
pub fn burn_tokens(&mut self, n: u64) -> Result<(), UsuryError>
Add n to the token-burn tracker. Err(UsuryError) once the cumulative burn breaches
the usury ceiling (declared ceiling + the default overage) — the anti-usury layer.
Trait Implementations§
Source§impl Clone for ResourceContract
impl Clone for ResourceContract
Source§fn clone(&self) -> ResourceContract
fn clone(&self) -> ResourceContract
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 ResourceContract
impl Debug for ResourceContract
Source§impl PartialEq for ResourceContract
impl PartialEq for ResourceContract
Source§fn eq(&self, other: &ResourceContract) -> bool
fn eq(&self, other: &ResourceContract) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for ResourceContract
impl Eq for ResourceContract
impl StructuralPartialEq for ResourceContract
Auto Trait Implementations§
impl Freeze for ResourceContract
impl RefUnwindSafe for ResourceContract
impl Send for ResourceContract
impl Sync for ResourceContract
impl Unpin for ResourceContract
impl UnsafeUnpin for ResourceContract
impl UnwindSafe for ResourceContract
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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