cargo: switch from proc-macro pin-project to declarative pin-project-lite

In our simple use cases they both should generate the same code, see
[0] for notable differences. While we cannot drop proc-macro due to
that switch, all of our dependencies that use pinning already use
pin-project-lite, so this allows us to drop a whole crate in general
while not loosing anything.

[0]: https://github.com/taiki-e/pin-project-lite#pin-project-vs-pin-project-lite

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht
2021-09-22 11:15:38 +02:00
parent a294588409
commit 71549afa3f
5 changed files with 16 additions and 17 deletions

View File

@ -3,7 +3,7 @@ use std::task::{Context, Poll};
use anyhow::Error;
use futures::{ready, Stream};
use pin_project::pin_project;
use pin_project_lite::pin_project;
use pbs_datastore::data_blob::ChunkInfo;
@ -16,11 +16,12 @@ pub trait MergeKnownChunks: Sized {
fn merge_known_chunks(self) -> MergeKnownChunksQueue<Self>;
}
#[pin_project]
pub struct MergeKnownChunksQueue<S> {
#[pin]
input: S,
buffer: Option<MergedChunkInfo>,
pin_project! {
pub struct MergeKnownChunksQueue<S> {
#[pin]
input: S,
buffer: Option<MergedChunkInfo>,
}
}
impl<S> MergeKnownChunks for S