igc-net 0.3.0

igc-net protocol rust library — publish and add metadata to IGC flight files
Documentation
use crate::id::PilotId;

use super::record::{PilotAuthDidRecord, PrivateAccessRotationRecord};
use super::state::{FlightGovernanceState, PilotAuthDidState, PrivateAccessRotationState};
use super::store::GovernanceStoreError;

pub trait GovernanceLookup {
    fn load_pilot_auth_did_records(
        &self,
        pilot_id: &PilotId,
    ) -> Result<Vec<PilotAuthDidRecord>, GovernanceStoreError>;

    fn resolve_pilot_auth_did_state(
        &self,
        pilot_id: &PilotId,
    ) -> Result<PilotAuthDidState, GovernanceStoreError>;

    fn load_private_access_rotation_records(
        &self,
        pilot_id: &PilotId,
    ) -> Result<Vec<PrivateAccessRotationRecord>, GovernanceStoreError>;

    fn resolve_private_access_rotation_state(
        &self,
        pilot_id: &PilotId,
    ) -> Result<PrivateAccessRotationState, GovernanceStoreError>;

    fn load_flight_governance_state(
        &self,
        raw_igc_hash: &crate::id::Blake3Hex,
    ) -> Result<Option<FlightGovernanceState>, GovernanceStoreError>;

    fn resolve_flight_governance_state(
        &self,
        raw_igc_hash: &crate::id::Blake3Hex,
    ) -> Result<Option<FlightGovernanceState>, GovernanceStoreError>;
}