gl_client/pairing/
mod.rs

1use crate::{credentials, pb::scheduler::PairDeviceResponse};
2use thiserror::Error;
3
4pub mod attestation_device;
5pub mod new_device;
6
7#[derive(Error, Debug)]
8pub enum Error {
9    #[error(transparent)]
10    TransportError(#[from] tonic::transport::Error),
11    #[error(transparent)]
12    X509Error(#[from] rcgen::RcgenError),
13    #[error("could not build client: {0}")]
14    BuildClientError(String),
15    #[error(transparent)]
16    GrpcError(#[from] tonic::Status),
17    #[error(transparent)]
18    CredentialsError(#[from] credentials::Error),
19    #[error(transparent)]
20    RuneError(#[from] runeauth::RuneError),
21    #[error("could not approve pairing: {0}")]
22    ApprovePairingError(String),
23    #[error("could not verify pairing data: {0}")]
24    VerifyPairingDataError(String),
25}
26
27#[derive(Debug)]
28pub enum PairingSessionData {
29    PairingResponse(PairDeviceResponse),
30    PairingQr(String),
31    PairingError(tonic::Status),
32}
33
34fn into_approve_pairing_error<T: ToString>(v: T) -> Error {
35    Error::ApprovePairingError(v.to_string())
36}
37
38fn into_verify_pairing_data_error<T: ToString>(v: T) -> Error {
39    Error::VerifyPairingDataError(v.to_string())
40}