pub trait HolgerBox {
Show 20 methods
// Required method
fn serving(&self) -> bool;
// Provided methods
fn health(&self) -> BTreeMap<String, String> { ... }
fn product_report(&self) -> Option<String> { ... }
fn own_review(&self) -> Option<String> { ... }
fn entitle(&self, fact: &EntitlementFact) -> Result<Applied, String> { ... }
fn purge(&self, p: &PurgeTenant) -> Result<PurgeAnswer, String> { ... }
fn sign_in_again(&self, s: &SignInAgain) -> Result<String, String> { ... }
fn keep_refeed(&self, r: &Refeed) -> Result<String, String> { ... }
fn add_principal(&self, a: &AddPrincipal) -> Result<String, String> { ... }
fn want_room(&self, g: &GrowRoom) -> Result<String, String> { ... }
fn grow_carried(&self, data_gib: u64) -> Result<bool, String> { ... }
fn twin_holds(&self, data_gib: u64) -> Result<String, String> { ... }
fn grow_start(
&self,
data_gib: u64,
nonce: &str,
) -> Result<GrowState, String> { ... }
fn grow_settle(&self, past_waiting: bool) -> GrowState { ... }
fn grow_look_again(&self, give_up: bool) -> Result<(), String> { ... }
fn recharge(&self, r: &RechargeAsk) -> Result<String, String> { ... }
fn fence(&self, primary: &str, epoch: u64) -> Result<String, String> { ... }
fn adopt(&self, twin: &str, principal: &str) -> Result<String, String> { ... }
fn become_twin(&self, primary: &str) -> Result<String, String> { ... }
fn review(&self) -> Result<Value, String> { ... }
}Expand description
Holger’s verbs, as an order reaches them. Sync: the executor runs on a jera job’s blocking thread.
Required Methods§
Provided Methods§
Sourcefn health(&self) -> BTreeMap<String, String>
fn health(&self) -> BTreeMap<String, String>
The box’s health words for Fleet.Report (serving, data, serves_at, twin, epoch).
Sourcefn product_report(&self) -> Option<String>
fn product_report(&self) -> Option<String>
monetize_product::pull::ProductReport as JSON — the main that serves sends it.
Sourcefn own_review(&self) -> Option<String>
fn own_review(&self) -> Option<String>
A twin reviews itself on every report (G12): its review as JSON.
Sourcefn entitle(&self, fact: &EntitlementFact) -> Result<Applied, String>
fn entitle(&self, fact: &EntitlementFact) -> Result<Applied, String>
Store one VERIFIED fact, newer wins.
Sourcefn purge(&self, p: &PurgeTenant) -> Result<PurgeAnswer, String>
fn purge(&self, p: &PurgeTenant) -> Result<PurgeAnswer, String>
Purge one repository (or answer its purge’s state).
Sourcefn sign_in_again(&self, s: &SignInAgain) -> Result<String, String>
fn sign_in_again(&self, s: &SignInAgain) -> Result<String, String>
A sold estate’s resend sign-in link (Gunnar’s S10): mint a fresh first-login invite for the order’s account and mail it to the order’s address. Default: this box mints none.
Sourcefn keep_refeed(&self, r: &Refeed) -> Result<String, String>
fn keep_refeed(&self, r: &Refeed) -> Result<String, String>
Keep the estate keys fed again (monetize MAIL-RELAY + NIGHT-PUBREPO 2026-10-28): kept beside the feed the box was laid with, which they go over. Default: this box keeps none.
Sourcefn add_principal(&self, a: &AddPrincipal) -> Result<String, String>
fn add_principal(&self, a: &AddPrincipal) -> Result<String, String>
A paid signup’s repository (a.username), bound to a.signup (idempotent); answers the
namespace made. A name bound to another signup is refused starting taken.
Sourcefn want_room(&self, g: &GrowRoom) -> Result<String, String>
fn want_room(&self, g: &GrowRoom) -> Result<String, String>
Keep the room wanted past the set and tell the operator.
Sourcefn grow_carried(&self, data_gib: u64) -> Result<bool, String>
fn grow_carried(&self, data_gib: u64) -> Result<bool, String>
Do the box’s data disks already carry data_gib a disk?
Sourcefn twin_holds(&self, data_gib: u64) -> Result<String, String>
fn twin_holds(&self, data_gib: u64) -> Result<String, String>
The twin first (a main only): Ok once the twin holds main’s whole set.
Sourcefn grow_start(&self, data_gib: u64, nonce: &str) -> Result<GrowState, String>
fn grow_start(&self, data_gib: u64, nonce: &str) -> Result<GrowState, String>
Start the growth to data_gib a disk under a one-time nonce (the step was verified).
Sourcefn grow_settle(&self, past_waiting: bool) -> GrowState
fn grow_settle(&self, past_waiting: bool) -> GrowState
Wait for the grow machine to stop moving (past waiting-members when told).
Sourcefn grow_look_again(&self, give_up: bool) -> Result<(), String>
fn grow_look_again(&self, give_up: bool) -> Result<(), String>
Look at the members again (give_up: mount back what is there).
Sourcefn recharge(&self, r: &RechargeAsk) -> Result<String, String>
fn recharge(&self, r: &RechargeAsk) -> Result<String, String>
Fill r.main from r.twin (holger’s recharge lane).
Sourcefn fence(&self, primary: &str, epoch: u64) -> Result<String, String>
fn fence(&self, primary: &str, epoch: u64) -> Result<String, String>
Fence the old primary at primary (this box itself when it names it): it refuses
every write from now on. Refused by name by default.
Sourcefn adopt(&self, twin: &str, principal: &str) -> Result<String, String>
fn adopt(&self, twin: &str, principal: &str) -> Result<String, String>
Certify the twin at twin for this primary.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".