X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-c-bindings%2Fsrc%2Flightning%2Fonion_message%2Fpacket.rs;h=9ca90379e247afa43a1690d02b5d95d72c276c1f;hb=2f70a371708dbfde3fa6abfcc0315736d2795a01;hp=90c0238577a3f86ca8d6215f963fb8a2b33b97ba;hpb=a21177846ed75d66f68a1603f768410f07a65791;p=ldk-c-bindings diff --git a/lightning-c-bindings/src/lightning/onion_message/packet.rs b/lightning-c-bindings/src/lightning/onion_message/packet.rs index 90c0238..9ca9037 100644 --- a/lightning-c-bindings/src/lightning/onion_message/packet.rs +++ b/lightning-c-bindings/src/lightning/onion_message/packet.rs @@ -16,6 +16,48 @@ use crate::c_types::*; #[cfg(feature="no-std")] use alloc::{vec::Vec, boxed::Box}; +/// The contents of an onion message. In the context of offers, this would be the invoice, invoice +/// request, or invoice error. +#[must_use] +#[repr(C)] +pub enum OnionMessageContents { + /// A custom onion message specified by the user. + Custom( + crate::lightning::onion_message::packet::CustomOnionMessageContents), +} +use lightning::onion_message::packet::OnionMessageContents as OnionMessageContentsImport; +pub(crate) type nativeOnionMessageContents = OnionMessageContentsImport; + +impl OnionMessageContents { + #[allow(unused)] + pub(crate) fn into_native(self) -> nativeOnionMessageContents { + match self { + OnionMessageContents::Custom (mut a, ) => { + nativeOnionMessageContents::Custom ( + a, + ) + }, + } + } + #[allow(unused)] + pub(crate) fn native_into(native: nativeOnionMessageContents) -> Self { + match native { + nativeOnionMessageContents::Custom (mut a, ) => { + OnionMessageContents::Custom ( + Into::into(a), + ) + }, + } + } +} +/// Frees any resources used by the OnionMessageContents +#[no_mangle] +pub extern "C" fn OnionMessageContents_free(this_ptr: OnionMessageContents) { } +#[no_mangle] +/// Utility method to constructs a new Custom-variant OnionMessageContents +pub extern "C" fn OnionMessageContents_custom(a: crate::lightning::onion_message::packet::CustomOnionMessageContents) -> OnionMessageContents { + OnionMessageContents::Custom(a, ) +} /// The contents of a custom onion message. #[repr(C)] pub struct CustomOnionMessageContents {