jsonld_context_processing/
processed.rs1use iri_rs::IriBuf;
2use jsonld_core::Context;
3use rdfx::BlankIdBuf;
4use std::ops;
5
6pub struct Processed<'l, T = IriBuf, B = BlankIdBuf> {
15 pub unprocessed: &'l jsonld_syntax::context::Context,
17 pub processed: Context<T, B>,
19}
20
21impl<'l, T, B> Processed<'l, T, B> {
22 pub fn new(unprocessed: &'l jsonld_syntax::context::Context, processed: Context<T, B>) -> Self {
24 Self { unprocessed, processed }
25 }
26
27 pub fn unprocessed(&self) -> &'l jsonld_syntax::context::Context {
29 self.unprocessed
30 }
31
32 pub fn into_processed(self) -> Context<T, B> {
34 self.processed
35 }
36
37 pub fn as_ref(&self) -> ProcessedRef<'l, '_, T, B> {
39 ProcessedRef {
40 unprocessed: self.unprocessed,
41 processed: &self.processed,
42 }
43 }
44
45 pub fn into_owned(self) -> ProcessedOwned<T, B> {
47 ProcessedOwned {
48 unprocessed: self.unprocessed.clone(),
49 processed: self.processed,
50 }
51 }
52}
53
54impl<T, B> ops::Deref for Processed<'_, T, B> {
55 type Target = Context<T, B>;
56
57 fn deref(&self) -> &Self::Target {
58 &self.processed
59 }
60}
61
62impl<T, B> ops::DerefMut for Processed<'_, T, B> {
63 fn deref_mut(&mut self) -> &mut Self::Target {
64 &mut self.processed
65 }
66}
67
68pub struct ProcessedRef<'l, 'a, T, B> {
75 pub unprocessed: &'l jsonld_syntax::context::Context,
77 pub processed: &'a Context<T, B>,
79}
80
81impl<'l, 'a, T, B> ProcessedRef<'l, 'a, T, B> {
82 pub fn new(unprocessed: &'l jsonld_syntax::context::Context, processed: &'a Context<T, B>) -> Self {
84 Self { unprocessed, processed }
85 }
86
87 #[must_use]
89 pub fn unprocessed(&self) -> &'l jsonld_syntax::context::Context {
90 self.unprocessed
91 }
92
93 #[must_use]
95 pub fn processed(&self) -> &'a Context<T, B> {
96 self.processed
97 }
98}
99
100pub struct ProcessedOwned<T, B> {
106 pub unprocessed: jsonld_syntax::context::Context,
108 pub processed: Context<T, B>,
110}
111
112impl<T, B> ProcessedOwned<T, B> {
113 pub fn new(unprocessed: jsonld_syntax::context::Context, processed: Context<T, B>) -> Self {
116 Self { unprocessed, processed }
117 }
118
119 pub fn unprocessed(&self) -> &jsonld_syntax::context::Context {
121 &self.unprocessed
122 }
123
124 pub fn processed(&self) -> &Context<T, B> {
126 &self.processed
127 }
128
129 pub fn as_ref(&self) -> ProcessedRef<'_, '_, T, B> {
131 ProcessedRef {
132 unprocessed: &self.unprocessed,
133 processed: &self.processed,
134 }
135 }
136}