use iri_rs::IriBuf;
use jsonld_core::Context;
use rdfx::BlankIdBuf;
use std::ops;
pub struct Processed<'l, T = IriBuf, B = BlankIdBuf> {
pub unprocessed: &'l jsonld_syntax::context::Context,
pub processed: Context<T, B>,
}
impl<'l, T, B> Processed<'l, T, B> {
pub fn new(unprocessed: &'l jsonld_syntax::context::Context, processed: Context<T, B>) -> Self {
Self { unprocessed, processed }
}
pub fn unprocessed(&self) -> &'l jsonld_syntax::context::Context {
self.unprocessed
}
pub fn into_processed(self) -> Context<T, B> {
self.processed
}
pub fn as_ref(&self) -> ProcessedRef<'l, '_, T, B> {
ProcessedRef {
unprocessed: self.unprocessed,
processed: &self.processed,
}
}
pub fn into_owned(self) -> ProcessedOwned<T, B> {
ProcessedOwned {
unprocessed: self.unprocessed.clone(),
processed: self.processed,
}
}
}
impl<T, B> ops::Deref for Processed<'_, T, B> {
type Target = Context<T, B>;
fn deref(&self) -> &Self::Target {
&self.processed
}
}
impl<T, B> ops::DerefMut for Processed<'_, T, B> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.processed
}
}
pub struct ProcessedRef<'l, 'a, T, B> {
pub unprocessed: &'l jsonld_syntax::context::Context,
pub processed: &'a Context<T, B>,
}
impl<'l, 'a, T, B> ProcessedRef<'l, 'a, T, B> {
pub fn new(unprocessed: &'l jsonld_syntax::context::Context, processed: &'a Context<T, B>) -> Self {
Self { unprocessed, processed }
}
#[must_use]
pub fn unprocessed(&self) -> &'l jsonld_syntax::context::Context {
self.unprocessed
}
#[must_use]
pub fn processed(&self) -> &'a Context<T, B> {
self.processed
}
}
pub struct ProcessedOwned<T, B> {
pub unprocessed: jsonld_syntax::context::Context,
pub processed: Context<T, B>,
}
impl<T, B> ProcessedOwned<T, B> {
pub fn new(unprocessed: jsonld_syntax::context::Context, processed: Context<T, B>) -> Self {
Self { unprocessed, processed }
}
pub fn unprocessed(&self) -> &jsonld_syntax::context::Context {
&self.unprocessed
}
pub fn processed(&self) -> &Context<T, B> {
&self.processed
}
pub fn as_ref(&self) -> ProcessedRef<'_, '_, T, B> {
ProcessedRef {
unprocessed: &self.unprocessed,
processed: &self.processed,
}
}
}