pub struct UbftReplica {
pub nodes: u32,
pub window: u32,
}Expand description
The uBFT replica the services sit beside: a fixed allowance off the
budget, sized by UBFT_DESIGN_LUT and UBFT_DESIGN_DSP (an upper
bound: the shell is included). Plans as itself, with no rate.
Fields§
§nodes: u32Hardware capacity; runtime membership must still be odd.
window: u32Compile-time protocol window.
Implementations§
Trait Implementations§
Source§impl Clone for UbftReplica
impl Clone for UbftReplica
Source§fn clone(&self) -> UbftReplica
fn clone(&self) -> UbftReplica
Returns a duplicate 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 Component for UbftReplica
impl Component for UbftReplica
Source§fn build_flags(&self, _plan: &Plan) -> BuildFlags
fn build_flags(&self, _plan: &Plan) -> BuildFlags
The compile-time settings that build
plan (constants, features),
as key = value pairs.Source§fn plan(&self, share: &Share, _cx: &Context) -> Option<Plan>
fn plan(&self, share: &Share, _cx: &Context) -> Option<Plan>
Best build within
share, or None if nothing fits.Source§fn fixed(&self) -> Option<Share>
fn fixed(&self) -> Option<Share>
An allowance taken off the top of the budget before the powers divide
the rest (the SHA line’s part of the LUT split), or
None to take a
share of its side.Source§fn ubft(&self) -> bool
fn ubft(&self) -> bool
A uBFT module: a service built to sit beside a uBFT replica (its
streams and key slots), or the replica’s own footprint. Only the uBFT
modes plan it, and they plan nothing else (
Mode::admits).Source§fn size_for(&self, _per_second: f64, _cx: &Context) -> Option<Share>
fn size_for(&self, _per_second: f64, _cx: &Context) -> Option<Share>
A line that sizes itself to demand (“auto”): the allowance of its
smallest build that supplies
per_second units of what it supplies
(SHA-512 blocks) at cx’s clock, or None when its size is set by
hand (the default). The planner (plan_chip) calls it with the
demand of the chip it plans, so the line never limits the chip.Source§fn resize(&mut self, _allowance: Share)
fn resize(&mut self, _allowance: Share)
Remember the allowance the planner settled on for an auto-sized line
(
apply_layout calls it), so fixed and the next
plan start from it.Why the current knob settings cannot be planned at all (an option
that is offered but not implemented yet), or
None. The TUI shows
it instead of “nothing fits”.Source§impl Debug for UbftReplica
impl Debug for UbftReplica
Auto Trait Implementations§
impl Freeze for UbftReplica
impl RefUnwindSafe for UbftReplica
impl Send for UbftReplica
impl Sync for UbftReplica
impl Unpin for UbftReplica
impl UnsafeUnpin for UbftReplica
impl UnwindSafe for UbftReplica
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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