diff --git a/Cargo.toml b/Cargo.toml index 37414fb3..987b7aec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ bzip2 = { version = "0.3.3" , optional = true } flate2 = { version = "1.0.11", optional = true } futures-core = { version = "0.3.0", default-features = false } futures-io = { version = "0.3.0", default-features = false, features = ["std"], optional = true } -pin-project = "0.4.3" +pin-project-lite = "0.1.1" libzstd = { version = "0.5.0", optional = true, package = "zstd", default-features = false } zstd-safe = { version = "2.0.0", optional = true, default-features = false } memchr = "2.2.1" diff --git a/src/bufread/generic/decoder.rs b/src/bufread/generic/decoder.rs index 2b1fcb13..b875cd51 100644 --- a/src/bufread/generic/decoder.rs +++ b/src/bufread/generic/decoder.rs @@ -7,7 +7,7 @@ use std::io::Result; use crate::{codec::Decode, util::PartialBuffer}; use futures_core::ready; use futures_io::{AsyncBufRead, AsyncRead}; -use pin_project::pin_project; +use pin_project_lite::pin_project; #[derive(Debug)] enum State { @@ -16,13 +16,14 @@ enum State { Done, } -#[pin_project] -#[derive(Debug)] -pub struct Decoder { - #[pin] - reader: R, - decoder: D, - state: State, +pin_project! { + #[derive(Debug)] + pub struct Decoder { + #[pin] + reader: R, + decoder: D, + state: State, + } } impl Decoder { diff --git a/src/bufread/generic/encoder.rs b/src/bufread/generic/encoder.rs index 254bcf2d..6288495b 100644 --- a/src/bufread/generic/encoder.rs +++ b/src/bufread/generic/encoder.rs @@ -7,7 +7,7 @@ use std::io::Result; use crate::{codec::Encode, util::PartialBuffer}; use futures_core::ready; use futures_io::{AsyncBufRead, AsyncRead}; -use pin_project::pin_project; +use pin_project_lite::pin_project; #[derive(Debug)] enum State { @@ -16,13 +16,14 @@ enum State { Done, } -#[pin_project] -#[derive(Debug)] -pub struct Encoder { - #[pin] - reader: R, - encoder: E, - state: State, +pin_project! { + #[derive(Debug)] + pub struct Encoder { + #[pin] + reader: R, + encoder: E, + state: State, + } } impl Encoder { diff --git a/src/bufread/macros/decoder.rs b/src/bufread/macros/decoder.rs index 19b77c39..2fe98766 100644 --- a/src/bufread/macros/decoder.rs +++ b/src/bufread/macros/decoder.rs @@ -1,14 +1,15 @@ macro_rules! decoder { ($(#[$attr:meta])* $name:ident) => { - $(#[$attr])* - #[pin_project::pin_project] - #[derive(Debug)] - /// - /// This structure implements an [`AsyncRead`](futures_io::AsyncRead) interface and will - /// read compressed data from an underlying stream and emit a stream of uncompressed data. - pub struct $name { - #[pin] - inner: crate::bufread::Decoder, + pin_project_lite::pin_project! { + $(#[$attr])* + #[derive(Debug)] + /// + /// This structure implements an [`AsyncRead`](futures_io::AsyncRead) interface and will + /// read compressed data from an underlying stream and emit a stream of uncompressed data. + pub struct $name { + #[pin] + inner: crate::bufread::Decoder, + } } impl $name { diff --git a/src/bufread/macros/encoder.rs b/src/bufread/macros/encoder.rs index fd920dcb..1f680295 100644 --- a/src/bufread/macros/encoder.rs +++ b/src/bufread/macros/encoder.rs @@ -1,14 +1,15 @@ macro_rules! encoder { ($(#[$attr:meta])* $name:ident<$inner:ident> $({ $($constructor:tt)* })*) => { - $(#[$attr])* - #[pin_project::pin_project] - #[derive(Debug)] - /// - /// This structure implements an [`AsyncRead`](futures_io::AsyncRead) interface and will - /// read uncompressed data from an underlying stream and emit a stream of compressed data. - pub struct $name<$inner: futures_io::AsyncBufRead> { - #[pin] - inner: crate::bufread::Encoder<$inner, crate::codec::$name>, + pin_project_lite::pin_project! { + $(#[$attr])* + #[derive(Debug)] + /// + /// This structure implements an [`AsyncRead`](futures_io::AsyncRead) interface and will + /// read uncompressed data from an underlying stream and emit a stream of compressed data. + pub struct $name<$inner: futures_io::AsyncBufRead> { + #[pin] + inner: crate::bufread::Encoder<$inner, crate::codec::$name>, + } } impl<$inner: futures_io::AsyncBufRead> $name<$inner> { diff --git a/src/stream/generic/decoder.rs b/src/stream/generic/decoder.rs index 0c5ff673..5e88d6a6 100644 --- a/src/stream/generic/decoder.rs +++ b/src/stream/generic/decoder.rs @@ -8,7 +8,7 @@ use std::{ use crate::{codec::Decode, util::PartialBuffer}; use bytes::{Bytes, BytesMut}; use futures_core::{ready, stream::Stream}; -use pin_project::pin_project; +use pin_project_lite::pin_project; const OUTPUT_BUFFER_SIZE: usize = 8_000; @@ -21,15 +21,16 @@ enum State { Invalid, } -#[pin_project] -#[derive(Debug)] -pub struct Decoder>, D: Decode> { - #[pin] - stream: S, - decoder: D, - state: State, - input: Bytes, - output: BytesMut, +pin_project! { + #[derive(Debug)] + pub struct Decoder>, D: Decode> { + #[pin] + stream: S, + decoder: D, + state: State, + input: Bytes, + output: BytesMut, + } } impl>, D: Decode> Decoder { diff --git a/src/stream/generic/encoder.rs b/src/stream/generic/encoder.rs index a6ace276..e2d2a0da 100644 --- a/src/stream/generic/encoder.rs +++ b/src/stream/generic/encoder.rs @@ -8,7 +8,7 @@ use std::{ use crate::{codec::Encode, util::PartialBuffer}; use bytes::{Bytes, BytesMut}; use futures_core::{ready, stream::Stream}; -use pin_project::pin_project; +use pin_project_lite::pin_project; const OUTPUT_BUFFER_SIZE: usize = 8_000; @@ -21,15 +21,16 @@ enum State { Invalid, } -#[pin_project] -#[derive(Debug)] -pub struct Encoder>, E: Encode> { - #[pin] - stream: S, - encoder: E, - state: State, - input: Bytes, - output: BytesMut, +pin_project! { + #[derive(Debug)] + pub struct Encoder>, E: Encode> { + #[pin] + stream: S, + encoder: E, + state: State, + input: Bytes, + output: BytesMut, + } } impl>, E: Encode> Encoder { diff --git a/src/stream/macros/decoder.rs b/src/stream/macros/decoder.rs index fb32f767..22bad7b0 100644 --- a/src/stream/macros/decoder.rs +++ b/src/stream/macros/decoder.rs @@ -1,14 +1,15 @@ macro_rules! decoder { ($(#[$attr:meta])* $name:ident) => { - $(#[$attr])* - #[pin_project::pin_project] - #[derive(Debug)] - /// - /// This structure implements a [`Stream`](futures_core::stream::Stream) interface and will read - /// compressed data from an underlying stream and emit a stream of uncompressed data. - pub struct $name>> { - #[pin] - inner: crate::stream::generic::Decoder, + pin_project_lite::pin_project! { + $(#[$attr])* + #[derive(Debug)] + /// + /// This structure implements a [`Stream`](futures_core::stream::Stream) interface and will read + /// compressed data from an underlying stream and emit a stream of uncompressed data. + pub struct $name>> { + #[pin] + inner: crate::stream::generic::Decoder, + } } impl>> $name { diff --git a/src/stream/macros/encoder.rs b/src/stream/macros/encoder.rs index 98e38bc6..7d1ab79f 100644 --- a/src/stream/macros/encoder.rs +++ b/src/stream/macros/encoder.rs @@ -1,14 +1,15 @@ macro_rules! encoder { ($(#[$attr:meta])* $name:ident<$inner:ident> $({ $($constructor:tt)* })*) => { - $(#[$attr])* - #[pin_project::pin_project] - #[derive(Debug)] - /// - /// This structure implements a [`Stream`](futures_core::stream::Stream) interface and will read - /// uncompressed data from an underlying stream and emit a stream of compressed data. - pub struct $name<$inner: futures_core::stream::Stream>> { - #[pin] - inner: crate::stream::Encoder<$inner, crate::codec::$name>, + pin_project_lite::pin_project! { + $(#[$attr])* + #[derive(Debug)] + /// + /// This structure implements a [`Stream`](futures_core::stream::Stream) interface and will read + /// uncompressed data from an underlying stream and emit a stream of compressed data. + pub struct $name<$inner: futures_core::stream::Stream>> { + #[pin] + inner: crate::stream::Encoder<$inner, crate::codec::$name>, + } } impl<$inner: futures_core::stream::Stream>> $name<$inner> { diff --git a/src/write/buf_writer.rs b/src/write/buf_writer.rs index 7870fa6d..9cc42cfc 100644 --- a/src/write/buf_writer.rs +++ b/src/write/buf_writer.rs @@ -5,7 +5,7 @@ use super::AsyncBufWrite; use futures_core::ready; use futures_io::{AsyncSeek, AsyncWrite, SeekFrom}; -use pin_project::pin_project; +use pin_project_lite::pin_project; use std::{ cmp::min, fmt, io, @@ -15,13 +15,14 @@ use std::{ const DEFAULT_BUF_SIZE: usize = 8192; -#[pin_project] -pub struct BufWriter { - #[pin] - inner: W, - buf: Box<[u8]>, - written: usize, - buffered: usize, +pin_project! { + pub struct BufWriter { + #[pin] + inner: W, + buf: Box<[u8]>, + written: usize, + buffered: usize, + } } impl BufWriter { diff --git a/src/write/generic/decoder.rs b/src/write/generic/decoder.rs index 0e966e53..eb1e5d15 100644 --- a/src/write/generic/decoder.rs +++ b/src/write/generic/decoder.rs @@ -11,7 +11,7 @@ use crate::{ }; use futures_core::ready; use futures_io::AsyncWrite; -use pin_project::pin_project; +use pin_project_lite::pin_project; #[derive(Debug)] enum State { @@ -20,13 +20,14 @@ enum State { Done, } -#[pin_project] -#[derive(Debug)] -pub struct Decoder { - #[pin] - writer: BufWriter, - decoder: D, - state: State, +pin_project! { + #[derive(Debug)] + pub struct Decoder { + #[pin] + writer: BufWriter, + decoder: D, + state: State, + } } impl Decoder { diff --git a/src/write/generic/encoder.rs b/src/write/generic/encoder.rs index 315fb92e..b04c0588 100644 --- a/src/write/generic/encoder.rs +++ b/src/write/generic/encoder.rs @@ -11,7 +11,7 @@ use crate::{ }; use futures_core::ready; use futures_io::AsyncWrite; -use pin_project::pin_project; +use pin_project_lite::pin_project; #[derive(Debug)] enum State { @@ -20,13 +20,14 @@ enum State { Done, } -#[pin_project] -#[derive(Debug)] -pub struct Encoder { - #[pin] - writer: BufWriter, - encoder: E, - state: State, +pin_project! { + #[derive(Debug)] + pub struct Encoder { + #[pin] + writer: BufWriter, + encoder: E, + state: State, + } } impl Encoder { diff --git a/src/write/macros/decoder.rs b/src/write/macros/decoder.rs index 2473368f..b25459ee 100644 --- a/src/write/macros/decoder.rs +++ b/src/write/macros/decoder.rs @@ -1,14 +1,15 @@ macro_rules! decoder { ($(#[$attr:meta])* $name:ident) => { - $(#[$attr])* - #[pin_project::pin_project] - #[derive(Debug)] - /// - /// This structure implements an [`AsyncWrite`](futures_io::AsyncWrite) interface and will - /// take in compressed data and write it uncompressed to an underlying stream. - pub struct $name { - #[pin] - inner: crate::write::Decoder, + pin_project_lite::pin_project! { + $(#[$attr])* + #[derive(Debug)] + /// + /// This structure implements an [`AsyncWrite`](futures_io::AsyncWrite) interface and will + /// take in compressed data and write it uncompressed to an underlying stream. + pub struct $name { + #[pin] + inner: crate::write::Decoder, + } } impl $name { diff --git a/src/write/macros/encoder.rs b/src/write/macros/encoder.rs index 8e75fe37..fc5ff928 100644 --- a/src/write/macros/encoder.rs +++ b/src/write/macros/encoder.rs @@ -1,14 +1,15 @@ macro_rules! encoder { ($(#[$attr:meta])* $name:ident<$inner:ident> $({ $($constructor:tt)* })*) => { - $(#[$attr])* - #[pin_project::pin_project] - #[derive(Debug)] - /// - /// This structure implements an [`AsyncWrite`](futures_io::AsyncWrite) interface and will - /// take in uncompressed data and write it compressed to an underlying stream. - pub struct $name<$inner: futures_io::AsyncWrite> { - #[pin] - inner: crate::write::Encoder<$inner, crate::codec::$name>, + pin_project_lite::pin_project! { + $(#[$attr])* + #[derive(Debug)] + /// + /// This structure implements an [`AsyncWrite`](futures_io::AsyncWrite) interface and will + /// take in uncompressed data and write it compressed to an underlying stream. + pub struct $name<$inner: futures_io::AsyncWrite> { + #[pin] + inner: crate::write::Encoder<$inner, crate::codec::$name>, + } } impl<$inner: futures_io::AsyncWrite> $name<$inner> {