use crate::PropertyGroup;
use crate::PropertyGroupComposed;
use crate::PropertyGroupDirect;
use crate::PropertyGroups;
use crate::error::IterError;
use crate::error::LookupError;
mod sealed {
pub trait PropertyGroupsSealed {}
impl PropertyGroupsSealed for crate::Instance<'_> {}
impl PropertyGroupsSealed for crate::Service<'_> {}
impl PropertyGroupsSealed for crate::Snapshot<'_> {}
}
pub trait HasDirectPropertyGroups: sealed::PropertyGroupsSealed {
fn property_group_direct(
&self,
name: &str,
) -> Result<Option<PropertyGroup<'_, PropertyGroupDirect>>, LookupError>;
fn property_groups_direct(
&self,
) -> Result<PropertyGroups<'_, PropertyGroupDirect>, IterError>;
}
pub trait HasComposedPropertyGroups: sealed::PropertyGroupsSealed {
fn property_group_composed(
&self,
name: &str,
) -> Result<Option<PropertyGroup<'_, PropertyGroupComposed>>, LookupError>;
fn property_groups_composed(
&self,
) -> Result<PropertyGroups<'_, PropertyGroupComposed>, IterError>;
}