X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-c-bindings%2Fsrc%2Fc_types%2Fmod.rs;h=18d8a08dfa7b5cda7b17e7c1ba33cd3cb28e7fd2;hb=2bdcba6c2297ca3cabc45c484e35c058ee7d4739;hp=5db6dda00b908375df6a5b02accae57d2f21a89a;hpb=f160848382e6a1bc43dc100d77b96c4b4ecb3beb;p=ldk-c-bindings diff --git a/lightning-c-bindings/src/c_types/mod.rs b/lightning-c-bindings/src/c_types/mod.rs index 5db6dda..18d8a08 100644 --- a/lightning-c-bindings/src/c_types/mod.rs +++ b/lightning-c-bindings/src/c_types/mod.rs @@ -17,6 +17,16 @@ use std::convert::TryInto; // Bindings need at least rustc 1.34 use std::io::{Cursor, Read}; // TODO: We should use core2 here when we support no_std +#[repr(C)] +/// A dummy struct of which an instance must never exist. +/// This corresponds to the Rust type `Infallible`, or, in unstable rust, `!` +pub struct NotConstructable { + _priv_thing: core::convert::Infallible, +} +impl From for NotConstructable { + fn from(_: core::convert::Infallible) -> Self { unreachable!(); } +} + /// Integer in the range `0..32` #[derive(PartialEq, Eq, Copy, Clone)] #[allow(non_camel_case_types)]