#[non_exhaustive]pub struct BandwidthStats {
pub total_upload: u64,
pub total_download: u64,
pub per_folder: BTreeMap<String, FolderStats>,
pub per_peer: BTreeMap<String, PeerStats>,
pub period_start: u64,
}Expand description
Persisted bandwidth accounting for the local node.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.total_upload: u64§total_download: u64§per_folder: BTreeMap<String, FolderStats>§per_peer: BTreeMap<String, PeerStats>§period_start: u64Implementations§
Source§impl BandwidthStats
impl BandwidthStats
Sourcepub fn load(stats_path_impl: impl AsRef<Path>) -> Result<Self>
pub fn load(stats_path_impl: impl AsRef<Path>) -> Result<Self>
Load counters from JSON, returning empty counters for a missing file.
§Errors
Returns an error if the counters cannot be read or decoded.
Sourcepub fn save(&self, stats_path: impl AsRef<Path>) -> Result<()>
pub fn save(&self, stats_path: impl AsRef<Path>) -> Result<()>
Persist counters atomically.
§Errors
Returns an error if the counters cannot be serialized or persisted.
Sourcepub fn record_download(
&mut self,
bytes: u64,
files: u64,
folder_name_option: Option<&str>,
peer_id_option: Option<&str>,
)
pub fn record_download( &mut self, bytes: u64, files: u64, folder_name_option: Option<&str>, peer_id_option: Option<&str>, )
Record downloaded bytes, optionally scoped to a folder and peer.
Sourcepub fn record_upload(
&mut self,
bytes: u64,
files: u64,
folder_name_option: Option<&str>,
peer_id_option: Option<&str>,
)
pub fn record_upload( &mut self, bytes: u64, files: u64, folder_name_option: Option<&str>, peer_id_option: Option<&str>, )
Record uploaded bytes, optionally scoped to a folder and peer.
Sourcepub fn record_connection(&mut self, peer: &str)
pub fn record_connection(&mut self, peer: &str)
Record a newly observed peer connection.
Trait Implementations§
Source§impl Clone for BandwidthStats
impl Clone for BandwidthStats
Source§fn clone(&self) -> BandwidthStats
fn clone(&self) -> BandwidthStats
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BandwidthStats
impl Debug for BandwidthStats
Source§impl Default for BandwidthStats
impl Default for BandwidthStats
Source§impl<'de> Deserialize<'de> for BandwidthStats
impl<'de> Deserialize<'de> for BandwidthStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for BandwidthStats
Source§impl PartialEq for BandwidthStats
impl PartialEq for BandwidthStats
Source§impl Serialize for BandwidthStats
impl Serialize for BandwidthStats
impl StructuralPartialEq for BandwidthStats
Auto Trait Implementations§
impl Freeze for BandwidthStats
impl RefUnwindSafe for BandwidthStats
impl Send for BandwidthStats
impl Sync for BandwidthStats
impl Unpin for BandwidthStats
impl UnsafeUnpin for BandwidthStats
impl UnwindSafe for BandwidthStats
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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