dnp3 1.6.0

Rust implementation of DNP3 (IEEE 1815) with idiomatic bindings for C, C++, .NET, and Java
Documentation
use std::marker::PhantomData;
use std::task::Context;

struct NeverReady<T> {
    _phantom: PhantomData<T>,
}

impl<T> std::future::Future for NeverReady<T> {
    type Output = T;

    fn poll(self: std::pin::Pin<&mut Self>, _: &mut Context<'_>) -> std::task::Poll<Self::Output> {
        std::task::Poll::Pending
    }
}

pub(crate) fn forever<T>() -> impl std::future::Future<Output = T> {
    NeverReady::<T> {
        _phantom: Default::default(),
    }
}