Struct writeable::LengthHint
source · [−]Expand description
A hint to help consumers of Writeable pre-allocate bytes before they call write_to.
This behaves like Iterator::size_hint: it is a tuple where the first element is the
lower bound, and the second element is the upper bound. If the upper bound is None
either there is no known upper bound, or the upper bound is larger than usize.
LengthHint implements std::ops::{Add, Mul} and similar traits for easy composition. During computation, the lower bound will saturate at usize::MAX, while the upper bound will become None if usize::MAX is exceeded.
Tuple Fields
0: usize
1: Option<usize>
Implementations
Returns a recommendation for the number of bytes to pre-allocate. If an upper bound exists, this is used, otherwise the lower bound (which might be 0).
Examples
use writeable::Writeable;
fn pre_allocate_string(w: &impl Writeable) -> String {
String::with_capacity(w.write_len().capacity())
}
Trait Implementations
Performs the +=
operation. Read more
Performs the +=
operation. Read more
Returns a new hint that is correct wherever self
is correct, and wherever
other
is correct.
Example:
struct NonDeterministicWriteable(String, String);
impl Writeable for NonDeterministicWriteable {
fn write_to<W: fmt::Write + ?Sized>(&self, sink: &mut W) -> fmt::Result {
sink.write_str(if coin_flip() { &self.0 } else { &self.1 })
}
fn write_len(&self) -> LengthHint {
LengthHint::exact(self.0.len()) | LengthHint::exact(self.1.len())
}
}
type Output = Self
type Output = Self
The resulting type after applying the |
operator.
Performs the |=
operation. Read more
Performs the *=
operation. Read more
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Method which takes an iterator and generates Self
from the elements by
“summing up” the items. Read more
Auto Trait Implementations
impl RefUnwindSafe for LengthHint
impl Send for LengthHint
impl Sync for LengthHint
impl Unpin for LengthHint
impl UnwindSafe for LengthHint
Blanket Implementations
Mutably borrows from an owned value. Read more