use super::super::{MainnetSnsNeuronPage, SnsHostError, SnsNeuronId, SnsNeuronRow};
use crate::report::CollectionSourceRequest;
pub trait SnsNeuronSource: Sync {
fn fetch_sns_neuron<'a>(
&'a self,
request: &'a CollectionSourceRequest,
governance_canister_id: &'a str,
neuron_id: &'a str,
) -> crate::report::SourceFuture<'a, Result<SnsNeuronRow, SnsHostError>>;
}
pub trait SnsNeuronsSource: Sync {
fn fetch_sns_neurons<'a>(
&'a self,
request: &'a CollectionSourceRequest,
governance_canister_id: &'a str,
limit: u32,
owner_principal_id: Option<&'a str>,
) -> crate::report::SourceFuture<'a, Result<Vec<SnsNeuronRow>, SnsHostError>>;
fn fetch_sns_neuron_page<'a>(
&'a self,
request: &'a CollectionSourceRequest,
governance_canister_id: &'a str,
limit: u32,
start_page_at: Option<&'a SnsNeuronId>,
owner_principal_id: Option<&'a str>,
) -> crate::report::SourceFuture<'a, Result<MainnetSnsNeuronPage, SnsHostError>>;
}