pub trait HolgerBox {
Show 22 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 keep_setting(&self, name: &str, value: &[u8]) -> 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 product_order(
&self,
by: &OrderedBy,
kind: &str,
params: &BTreeMap<String, String>,
file: Option<&[u8]>,
) -> 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 keep_setting(&self, name: &str, value: &[u8]) -> Result<String, String>
fn keep_setting(&self, name: &str, value: &[u8]) -> Result<String, String>
Keep one generic setting (HOL-PUBSITE-FEED: a refeed’s public-site switch, kept as
crate::order::PUBLIC_SITE_SETTING): stored as an administrator’s write to
/-/settings/<name> is, audited, answering what it replaced. 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.
Sourcefn product_order(
&self,
by: &OrderedBy,
kind: &str,
params: &BTreeMap<String, String>,
file: Option<&[u8]>,
) -> Result<String, String>
fn product_order( &self, by: &OrderedBy, kind: &str, params: &BTreeMap<String, String>, file: Option<&[u8]>, ) -> Result<String, String>
Take the twin role: follow primary (a FRESH box only, exactly once).
One of Holger’s own order kinds (crate::order::holger_kind::PRODUCT, queued by the
operator on his site and pulled): its params as the operator typed them, its file pulled.
by is the VERIFIED order it came in (its sequence and the monetize key it verified
under): what the box’s own audit names the write by. The answer is the ack’s detail.
fn become_twin(&self, primary: &str) -> Result<String, String>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".