pub struct DhtConfig { /* private fields */ }Expand description
DHT operation settings including retry logic and timeouts.
Implementations§
Source§impl DhtConfig
impl DhtConfig
Sourcepub fn builder() -> DhtConfigBuilder
pub fn builder() -> DhtConfigBuilder
Create a new DhtConfigBuilder with default values.
Examples found in repository?
examples/full_config.rs (line 20)
17fn config_builder() -> Config {
18 Config::builder()
19 .dht_config(
20 DhtConfig::builder()
21 .retries(3)
22 .base_retry_interval(Duration::from_secs(5))
23 .max_retry_jitter(Duration::from_secs(10))
24 .get_timeout(Duration::from_secs(10))
25 .put_timeout(Duration::from_secs(10))
26 .build(),
27 )
28 .bootstrap_config(
29 BootstrapConfig::builder()
30 .max_bootstrap_records(5)
31 .publish_record_on_startup(true)
32 .check_older_records_first_on_startup(false)
33 .discovery_poll_interval(Duration::from_millis(2000))
34 .no_peers_retry_interval(Duration::from_millis(1500))
35 .per_peer_join_settle_time(Duration::from_millis(100))
36 .join_confirmation_wait_time(Duration::from_millis(500))
37 .build(),
38 )
39 .max_join_peer_count(4)
40 .publisher_config(
41 PublisherConfig::builder()
42 .initial_delay(Duration::from_secs(10))
43 .base_interval(Duration::from_secs(10))
44 .max_jitter(Duration::from_secs(50))
45 .build(),
46 )
47 .merge_config(
48 MergeConfig::builder()
49 .bubble_merge(
50 BubbleMergeConfig::builder()
51 .min_neighbors(4)
52 .base_interval(Duration::from_secs(60))
53 .max_jitter(Duration::from_secs(120))
54 .fail_topic_creation_on_merge_startup_failure(true)
55 .build(),
56 )
57 .message_overlap_merge(
58 MessageOverlapMergeConfig::builder()
59 .base_interval(Duration::from_secs(60))
60 .max_jitter(Duration::from_secs(120))
61 .fail_topic_creation_on_merge_startup_failure(true)
62 .build(),
63 )
64 .build(),
65 )
66 .timeouts(
67 TimeoutConfig::builder()
68 .join_peer_timeout(Duration::from_secs(5))
69 .broadcast_neighbors_timeout(Duration::from_secs(5))
70 .broadcast_timeout(Duration::from_secs(5))
71 .build(),
72 )
73 .build()
74}Sourcepub fn retries(&self) -> usize
pub fn retries(&self) -> usize
Number of retries after the initial attempt.
Total attempts = 1 + retries.
Default: 3.
Sourcepub fn base_retry_interval(&self) -> Duration
pub fn base_retry_interval(&self) -> Duration
Base delay between retries.
Default: 5s.
Sourcepub fn max_retry_jitter(&self) -> Duration
pub fn max_retry_jitter(&self) -> Duration
Max random jitter added to retry interval.
Default: 10s.
Sourcepub fn put_timeout(&self) -> Duration
pub fn put_timeout(&self) -> Duration
Timeout for DHT put operations.
Default: 10s.
Sourcepub fn get_timeout(&self) -> Duration
pub fn get_timeout(&self) -> Duration
Timeout for DHT get operations.
Default: 10s.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DhtConfig
impl RefUnwindSafe for DhtConfig
impl Send for DhtConfig
impl Sync for DhtConfig
impl Unpin for DhtConfig
impl UnsafeUnpin for DhtConfig
impl UnwindSafe for DhtConfig
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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