use crate::error::Result;
use crate::ffi;
use crate::Key;
use std::marker::PhantomData;
pub struct Subkey<'key> {
inner: Key<'key>,
_phantom: PhantomData<&'key Key<'key>>,
}
impl<'key> Subkey<'key> {
pub(crate) fn from_handle(handle: ffi::rnp_key_handle_t) -> Self {
Subkey {
inner: Key::from_handle(handle),
_phantom: PhantomData,
}
}
pub fn as_key(&self) -> &Key<'key> {
&self.inner
}
pub fn into_key(self) -> Key<'key> {
self.inner
}
}
impl<'key> std::ops::Deref for Subkey<'key> {
type Target = Key<'key>;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
#[allow(dead_code)]
fn _types_are_send_sync_check(_: &Subkey<'_>) -> Result<()> {
Ok(())
}