embedded_platform/platform/
initialize.rs

1use core::fmt;
2use core::future;
3use core::marker;
4use core::pin;
5use core::task;
6
7pub struct Initialize<P> {
8    phantom: marker::PhantomData<P>,
9}
10
11pub fn initialize<P>() -> Initialize<P> {
12    let phantom = marker::PhantomData;
13    Initialize { phantom }
14}
15
16impl<P> future::Future for Initialize<P>
17where
18    P: super::Platform,
19{
20    type Output = Result<P, P::Error>;
21
22    fn poll(self: pin::Pin<&mut Self>, cx: &mut task::Context<'_>) -> task::Poll<Self::Output> {
23        P::poll_initialize(cx)
24    }
25}
26
27impl<P> fmt::Debug for Initialize<P> {
28    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
29        f.debug_struct("Initialize").finish()
30    }
31}