mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-26 00:00:20 +02:00
Add accessors to Limit combinator (#325)
This commit is contained in:
committed by
Carl Lerche
parent
3cf91283f8
commit
a642e1c075
@@ -17,6 +17,47 @@ pub(super) fn new<T>(inner: T, limit: usize) -> Limit<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<T> Limit<T> {
|
||||||
|
/// Consumes this `Limit`, returning the underlying value.
|
||||||
|
pub fn into_inner(self) -> T {
|
||||||
|
self.inner
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Gets a reference to the underlying `BufMut`.
|
||||||
|
///
|
||||||
|
/// It is inadvisable to directly write to the underlying `BufMut`.
|
||||||
|
pub fn get_ref(&self) -> &T {
|
||||||
|
&self.inner
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Gets a mutable reference to the underlying `BufMut`.
|
||||||
|
///
|
||||||
|
/// It is inadvisable to directly write to the underlying `BufMut`.
|
||||||
|
pub fn get_mut(&mut self) -> &mut T {
|
||||||
|
&mut self.inner
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns the maximum number of bytes that can be written
|
||||||
|
///
|
||||||
|
/// # Note
|
||||||
|
///
|
||||||
|
/// If the inner `BufMut` has fewer bytes than indicated by this method then
|
||||||
|
/// that is the actual number of available bytes.
|
||||||
|
pub fn limit(&self) -> usize {
|
||||||
|
self.limit
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Sets the maximum number of bytes that can be written.
|
||||||
|
///
|
||||||
|
/// # Note
|
||||||
|
///
|
||||||
|
/// If the inner `BufMut` has fewer bytes than `lim` then that is the actual
|
||||||
|
/// number of available bytes.
|
||||||
|
pub fn set_limit(&mut self, lim: usize) {
|
||||||
|
self.limit = lim
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<T: BufMut> BufMut for Limit<T> {
|
impl<T: BufMut> BufMut for Limit<T> {
|
||||||
fn remaining_mut(&self) -> usize {
|
fn remaining_mut(&self) -> usize {
|
||||||
cmp::min(self.inner.remaining_mut(), self.limit)
|
cmp::min(self.inner.remaining_mut(), self.limit)
|
||||||
|
|||||||
Reference in New Issue
Block a user