rdf_fusion_encoding/string/
scalar.rs1use crate::EncodingScalar;
2use crate::string::{STRING_ENCODING, StringEncoding, StringEncodingRef};
3use datafusion::common::ScalarValue;
4use std::sync::Arc;
5
6#[derive(Debug, Clone)]
7pub struct StringEncodingScalar {
8 inner: ScalarValue,
9 encoding: StringEncodingRef,
10}
11
12impl StringEncodingScalar {
13 pub fn new_unchecked(inner: ScalarValue) -> Self {
14 Self {
15 inner,
16 encoding: Arc::clone(&STRING_ENCODING),
17 }
18 }
19}
20
21impl EncodingScalar for StringEncodingScalar {
22 type Encoding = StringEncoding;
23
24 fn encoding(&self) -> &Arc<Self::Encoding> {
25 &self.encoding
26 }
27
28 fn scalar_value(&self) -> &ScalarValue {
29 &self.inner
30 }
31
32 fn into_scalar_value(self) -> ScalarValue {
33 self.inner
34 }
35}