pub struct StationDiscoveryOptions {
pub enabled: bool,
pub refresh_interval: Duration,
pub max_links: usize,
}Expand description
Configures opt-in discovery of additional stations via
hecate_stations.list_stations, layered on top of the caller-supplied
bootstrap Seeds. Default (enabled == false) is a complete no-op.
Bootstrap seeds keep their exact meaning: dialed first, permanent
fallback if discovery never succeeds, retried forever on failure, never
replaced. Discovery only ADDS links — a station missing from a later
refresh does NOT tear down an existing link. A DISCOVERY-added link that
fails to dial [DISCOVERY_LINK_MAX_RESPAWN_ATTEMPTS] times in a row
gives up and frees its slot (so a future refresh can try a different
station instead) — unlike a bootstrap seed, which never gives up. Go’s
and dotnet’s ports of this same feature have no such give-up mechanism
(a permanently-unreachable discovered station wastes a slot forever,
redialing at the flat respawn delay indefinitely); building this pool
from scratch, with 34’s parallel design work on the Erlang reference
specifically adding this exception, was reason enough to include it here
too rather than carry the narrower behavior forward by default.
Fields§
§enabled: bool§refresh_interval: DurationInterval between discovery attempts once at least one bootstrap link is up. Default 30 minutes.
max_links: usizeBounds discovery’s OWN adds only, not the pool’s total link count —
see macula-dotnet’s identical StationDiscoveryOptions.MaxLinks doc
for the exact accounting rules this mirrors.
Trait Implementations§
Source§impl Clone for StationDiscoveryOptions
impl Clone for StationDiscoveryOptions
Source§fn clone(&self) -> StationDiscoveryOptions
fn clone(&self) -> StationDiscoveryOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more