use isr_core::Profile;
pub enum ProfileRef<'a> {
Owned(Profile<'a>),
Borrowed(&'a Profile<'a>),
}
impl<'a> From<Profile<'a>> for ProfileRef<'a> {
fn from(value: Profile<'a>) -> Self {
Self::Owned(value)
}
}
impl<'a> From<&'a Profile<'a>> for ProfileRef<'a> {
fn from(value: &'a Profile<'a>) -> Self {
Self::Borrowed(value)
}
}
impl<'a> std::ops::Deref for ProfileRef<'a> {
type Target = Profile<'a>;
fn deref(&self) -> &Self::Target {
match self {
Self::Owned(profile) => profile,
Self::Borrowed(profile) => profile,
}
}
}