use crate::Error;
use gl_client::credentials::Device as DeviceCredentials;
#[derive(uniffi::Object, Clone)]
pub struct DeveloperCert {
pub(crate) inner: gl_client::credentials::Nobody,
}
#[uniffi::export]
impl DeveloperCert {
#[uniffi::constructor()]
pub fn new(cert: Vec<u8>, key: Vec<u8>) -> Self {
Self {
inner: gl_client::credentials::Nobody::with(cert, key),
}
}
}
#[derive(uniffi::Object, Clone)]
pub struct Credentials {
pub(crate) inner: DeviceCredentials,
}
#[uniffi::export]
impl Credentials {
#[uniffi::constructor()]
pub fn load(raw: Vec<u8>) -> Result<Credentials, Error> {
Ok(Self {
inner: DeviceCredentials::from_bytes(raw),
})
}
pub fn save(&self) -> Result<Vec<u8>, Error> {
Ok(self.inner.to_bytes())
}
}