embedded_platform/platform/
initialize.rs1use 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}