use super::*;
#[derive(Clone, Debug, Getters)]
#[getset(get = "pub")]
pub(crate) struct Ciboulette2PgResourceSingleRelationships {
pub type_: Arc<CibouletteResourceType>,
pub key: ArcStr,
pub rel_details: CibouletteResourceRelationshipDetails,
}
#[derive(Clone, Debug, Getters)]
#[getset(get = "pub")]
pub(crate) struct Ciboulette2PgMultiRelationships<'request> {
pub type_: Arc<CibouletteResourceType>,
pub rel_opt: Ciboulette2PgMultiRelationshipsType,
pub rel_details: CibouletteResourceRelationshipDetails,
pub values: Option<Vec<Ciboulette2PgValue<'request>>>,
}
#[derive(Clone, Debug, PartialEq)]
pub(crate) enum Ciboulette2PgMultiRelationshipsType {
OneToMany(Arc<CibouletteRelationshipOneToManyOption>),
ManyToMany(Arc<CibouletteRelationshipManyToManyOption>),
}
#[derive(Clone, Debug, Default, Getters, MutGetters)]
#[getset(get = "pub", get_mut = "pub")]
pub(crate) struct Ciboulette2PgResourceInformations<'request> {
pub values: Vec<(ArcStr, Ciboulette2PgValue<'request>)>,
pub single_relationships: Vec<Ciboulette2PgResourceSingleRelationships>,
pub single_relationships_additional_fields: Vec<Ciboulette2PgAdditionalField>,
pub multi_relationships: BTreeMap<ArcStr, Ciboulette2PgMultiRelationships<'request>>,
}
impl<'request> Ciboulette2PgResourceInformations<'request> {
pub fn take_values(&mut self) -> Vec<(ArcStr, Ciboulette2PgValue<'request>)> {
std::mem::take(&mut self.values)
}
}