breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ffi

Trait CPtr

pub trait CPtr {
    type Target;

    // Required methods
    fn as_c_ptr(&self) -> *const Self::Target;
    fn as_mut_c_ptr(&mut self) -> *mut Self::Target;
}
Expand description

A trait for producing pointers that will always be valid in C (assuming NULL pointer is a valid no-op).

Rust does not guarantee pointers to Zero Sized Types (https://doc.rust-lang.org/nomicon/exotic-sizes.html#zero-sized-types-zsts). In case the type is empty this trait will return a NULL pointer, which should be handled in C.

Required Associated Types§

type Target

Required Methods§

fn as_c_ptr(&self) -> *const Self::Target

fn as_mut_c_ptr(&mut self) -> *mut Self::Target

Implementations on Foreign Types§

§

impl CPtr for EcdsaAdaptorSignature

§

type Target = EcdsaAdaptorSignature

§

fn as_c_ptr(&self) -> *const <EcdsaAdaptorSignature as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <EcdsaAdaptorSignature as CPtr>::Target

§

impl CPtr for EcdsaAdaptorSignature

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <EcdsaAdaptorSignature as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <EcdsaAdaptorSignature as CPtr>::Target

§

impl CPtr for MusigAggNonce

§

type Target = MusigAggNonce

§

fn as_c_ptr(&self) -> *const <MusigAggNonce as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigAggNonce as CPtr>::Target

§

impl CPtr for MusigAggNonce

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <MusigAggNonce as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigAggNonce as CPtr>::Target

§

impl CPtr for MusigKeyAggCache

§

type Target = MusigKeyAggCache

§

fn as_c_ptr(&self) -> *const <MusigKeyAggCache as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigKeyAggCache as CPtr>::Target

§

impl CPtr for MusigKeyAggCache

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <MusigKeyAggCache as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigKeyAggCache as CPtr>::Target

§

impl CPtr for MusigPartialSignature

§

type Target = MusigPartialSignature

§

fn as_c_ptr(&self) -> *const <MusigPartialSignature as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigPartialSignature as CPtr>::Target

§

impl CPtr for MusigPartialSignature

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <MusigPartialSignature as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigPartialSignature as CPtr>::Target

§

impl CPtr for MusigPubNonce

§

type Target = MusigPubNonce

§

fn as_c_ptr(&self) -> *const <MusigPubNonce as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigPubNonce as CPtr>::Target

§

impl CPtr for MusigPubNonce

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <MusigPubNonce as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigPubNonce as CPtr>::Target

§

impl CPtr for MusigSecNonce

§

type Target = MusigSecNonce

§

fn as_c_ptr(&self) -> *const <MusigSecNonce as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigSecNonce as CPtr>::Target

§

impl CPtr for MusigSecNonce

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <MusigSecNonce as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigSecNonce as CPtr>::Target

§

impl CPtr for MusigSession

§

type Target = MusigSession

§

fn as_c_ptr(&self) -> *const <MusigSession as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigSession as CPtr>::Target

§

impl CPtr for MusigSession

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <MusigSession as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <MusigSession as CPtr>::Target

§

impl CPtr for PedersenCommitment

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <PedersenCommitment as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <PedersenCommitment as CPtr>::Target

§

impl CPtr for Tag

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <Tag as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <Tag as CPtr>::Target

§

impl CPtr for Tweak

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <Tweak as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <Tweak as CPtr>::Target

§

impl CPtr for WhitelistSignature

§

type Target = WhitelistSignature

§

fn as_c_ptr(&self) -> *const <WhitelistSignature as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <WhitelistSignature as CPtr>::Target

§

impl CPtr for [u8; 32]

§

type Target = u8

§

fn as_c_ptr(&self) -> *const <[u8; 32] as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <[u8; 32] as CPtr>::Target

§

impl<T> CPtr for &[T]

§

type Target = T

§

fn as_c_ptr(&self) -> *const <&[T] as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <&[T] as CPtr>::Target

§

impl<T> CPtr for Option<T>
where T: CPtr,

§

type Target = <T as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <Option<T> as CPtr>::Target

§

fn as_c_ptr(&self) -> *const <Option<T> as CPtr>::Target

§

impl<T> CPtr for [T]

§

type Target = T

§

fn as_c_ptr(&self) -> *const <[T] as CPtr>::Target

§

fn as_mut_c_ptr(&mut self) -> *mut <[T] as CPtr>::Target

Implementors§

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::key::Keypair

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::XOnlyPublicKey

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ecdsa::RecoverableSignature

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ecdsa::Signature

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ellswift::ElligatorSwift

§

type Target = u8

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::schnorr::Signature

§

type Target = u8

§

impl CPtr for Message

§

type Target = u8

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::PublicKey

This trait enables interaction with the FFI layer and even though it is part of the public API normal users should never need to directly interact with FFI types.

§

impl CPtr for SecretKey

§

type Target = u8

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ffi::recovery::RecoverableSignature

§

type Target = u8

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ffi::ElligatorSwift

§

type Target = u8

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ffi::Keypair

§

type Target = u8

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ffi::PublicKey

§

type Target = u8

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ffi::Signature

§

type Target = u8

§

impl CPtr for breez_sdk_liquid::lightning_125::bitcoin::secp256k1::ffi::XOnlyPublicKey

§

type Target = u8