use super::lookup::SnsLookupRequest;
use crate::sns::report::SnsNeuronsSort;
use std::path::PathBuf;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct SnsNeuronRequest {
pub lookup: SnsLookupRequest,
pub neuron_id: String,
}
impl SnsNeuronRequest {
#[must_use]
pub fn new(lookup: SnsLookupRequest, neuron_id: impl Into<String>) -> Self {
Self {
lookup,
neuron_id: neuron_id.into(),
}
}
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct SnsNeuronsRequest {
pub lookup: SnsLookupRequest,
pub limit: u32,
pub owner_principal_id: Option<String>,
pub sort: SnsNeuronsSort,
pub cache_root: Option<PathBuf>,
pub verbose: bool,
}
impl SnsNeuronsRequest {
#[must_use]
pub fn new(lookup: SnsLookupRequest, limit: u32) -> Self {
Self {
lookup,
limit,
owner_principal_id: None,
sort: SnsNeuronsSort::default(),
cache_root: None,
verbose: false,
}
}
#[must_use]
pub fn with_owner_principal_id(mut self, owner_principal_id: impl Into<String>) -> Self {
self.owner_principal_id = Some(owner_principal_id.into());
self
}
#[must_use]
pub const fn with_sort(mut self, sort: SnsNeuronsSort) -> Self {
self.sort = sort;
self
}
#[must_use]
pub fn with_cache_root(mut self, cache_root: impl Into<PathBuf>) -> Self {
self.cache_root = Some(cache_root.into());
self
}
#[must_use]
pub const fn with_verbose(mut self, verbose: bool) -> Self {
self.verbose = verbose;
self
}
}