Skip to content

Commit fd77c55

Browse files
authored
Merge pull request #278 from tobz/tobz/expose-encoder-stats-methods
Expose `total_in`/`total_out` from underlying `flate2` encoder types.
2 parents 94efb21 + 1fcbb9c commit fd77c55

File tree

7 files changed

+34
-0
lines changed

7 files changed

+34
-0
lines changed

src/codec/flate/encoder.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ impl FlateEncoder {
1717
}
1818
}
1919

20+
pub(crate) fn get_ref(&self) -> &Compress {
21+
&self.compress
22+
}
23+
2024
fn encode(
2125
&mut self,
2226
input: &mut PartialBuffer<impl AsRef<[u8]>>,

src/codec/zlib/encoder.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ impl ZlibEncoder {
1414
inner: crate::codec::FlateEncoder::new(level, true),
1515
}
1616
}
17+
18+
pub(crate) fn get_ref(&self) -> &crate::codec::FlateEncoder {
19+
&self.inner
20+
}
1721
}
1822

1923
impl Encode for ZlibEncoder {

src/futures/bufread/generic/encoder.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ impl<R: AsyncBufRead, E: Encode> Encoder<R, E> {
4747
self.project().reader
4848
}
4949

50+
pub(crate) fn get_encoder_ref(&self) -> &E {
51+
&self.encoder
52+
}
53+
5054
pub fn into_inner(self) -> R {
5155
self.reader
5256
}

src/futures/write/generic/encoder.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ impl<W: AsyncWrite, E: Encode> Encoder<W, E> {
5151
self.project().writer.get_pin_mut()
5252
}
5353

54+
pub(crate) fn get_encoder_ref(&self) -> &E {
55+
&self.encoder
56+
}
57+
5458
pub fn into_inner(self) -> W {
5559
self.writer.into_inner()
5660
}

src/macros.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,16 @@ macro_rules! algos {
131131
),
132132
}
133133
}
134+
135+
/// Returns the total number of input bytes which have been processed by this compression object.
136+
pub fn total_in(&self) -> u64 {
137+
self.inner.get_encoder_ref().get_ref().get_ref().total_in()
138+
}
139+
140+
/// Returns the total number of output bytes which have been produced by this compression object.
141+
pub fn total_out(&self) -> u64 {
142+
self.inner.get_encoder_ref().get_ref().get_ref().total_out()
143+
}
134144
}
135145
{ @dec }
136146
);

src/tokio/bufread/generic/encoder.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ impl<R: AsyncBufRead, E: Encode> Encoder<R, E> {
4747
self.project().reader
4848
}
4949

50+
pub(crate) fn get_encoder_ref(&self) -> &E {
51+
&self.encoder
52+
}
53+
5054
pub fn into_inner(self) -> R {
5155
self.reader
5256
}

src/tokio/write/generic/encoder.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ impl<W: AsyncWrite, E: Encode> Encoder<W, E> {
5151
self.project().writer.get_pin_mut()
5252
}
5353

54+
pub(crate) fn get_encoder_ref(&self) -> &E {
55+
&self.encoder
56+
}
57+
5458
pub fn into_inner(self) -> W {
5559
self.writer.into_inner()
5660
}

0 commit comments

Comments
 (0)