BridgeConfig

Struct BridgeConfig 

Source
pub struct BridgeConfig {
    pub log_changes: bool,
    pub auto_promote: bool,
    pub static_seeds: Vec<SocketAddr>,
    pub lazarus_enabled: bool,
    pub lazarus_interval: Duration,
    pub persistence_path: Option<PathBuf>,
}
Expand description

Configuration for the Plumtree bridge.

Fields§

§log_changes: bool

Whether to log topology changes.

§auto_promote: bool

Whether to automatically promote new peers to eager based on fanout settings.

§static_seeds: Vec<SocketAddr>

Static seed addresses for the cluster.

These seeds will be periodically probed by the Lazarus task to ensure that restarted seeds are automatically rediscovered.

§lazarus_enabled: bool

Enable the Lazarus background task for seed recovery.

When enabled, the bridge will periodically check if static seeds are alive and attempt to rejoin them if they’re missing from the cluster.

§lazarus_interval: Duration

Interval between Lazarus probes for dead seeds.

Default: 30 seconds

§persistence_path: Option<PathBuf>

Path to persist known peers for recovery after restart.

If set, the bridge will save known peer addresses to this file on shutdown and load them on startup.

Implementations§

Source§

impl BridgeConfig

Source

pub fn new() -> Self

Create a new bridge configuration with default settings.

Source

pub fn with_log_changes(self, log: bool) -> Self

Enable or disable logging of topology changes.

Source

pub fn with_auto_promote(self, auto: bool) -> Self

Enable or disable automatic promotion of new peers.

Source

pub fn with_static_seeds(self, seeds: Vec<SocketAddr>) -> Self

Set static seed addresses for the cluster.

These seeds will be periodically probed by the Lazarus task (if enabled) to ensure restarted seeds are automatically rediscovered.

§Example
use memberlist_plumtree::BridgeConfig;

let config = BridgeConfig::new()
    .with_static_seeds(vec![
        "192.168.1.100:7946".parse().unwrap(),
        "192.168.1.101:7946".parse().unwrap(),
    ]);
Source

pub fn with_lazarus_enabled(self, enabled: bool) -> Self

Enable or disable the Lazarus background task for seed recovery.

When enabled, the bridge will periodically probe static seeds and attempt to rejoin any that are not in the cluster’s alive set.

Source

pub fn with_lazarus_interval(self, interval: Duration) -> Self

Set the interval between Lazarus probes for dead seeds.

Default: 30 seconds. Lower values provide faster recovery but increase network overhead.

Source

pub fn with_persistence_path(self, path: PathBuf) -> Self

Set the path for persisting known peers.

When set, the bridge will save known peer addresses to this file on shutdown and load them on startup, providing additional bootstrap options beyond static seeds.

Source

pub fn should_run_lazarus(&self) -> bool

Check if Lazarus probing is enabled and has seeds configured.

Trait Implementations§

Source§

impl Clone for BridgeConfig

Source§

fn clone(&self) -> BridgeConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BridgeConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for BridgeConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more