ScalarSparqlOp

Trait ScalarSparqlOp 

Source
pub trait ScalarSparqlOp:
    Debug
    + Hash
    + Eq
    + Send
    + Sync {
    // Required methods
    fn name(&self) -> &FunctionName;
    fn signature(&self) -> ScalarSparqlOpSignature;

    // Provided methods
    fn typed_value_encoding_op(
        &self,
    ) -> Option<Box<dyn ScalarSparqlOpImpl<TypedValueEncoding>>> { ... }
    fn plain_term_encoding_op(
        &self,
    ) -> Option<Box<dyn ScalarSparqlOpImpl<PlainTermEncoding>>> { ... }
    fn object_id_encoding_op(
        &self,
        _object_id_encoding: &ObjectIdEncoding,
    ) -> Option<Box<dyn ScalarSparqlOpImpl<ObjectIdEncoding>>> { ... }
}
Expand description

A ScalarSparqlOp is a function that operates on RDF terms. The function may return a different type of value. For example, a function that takes two RDF terms and outputs an integer can be implemented using this trait.

The goal is to make it easier for users to implement custom SPARQL functions. The different encodings of RDF Fusion are handled by providing a ScalarSparqlOpImpl for any given encoding.

To install a ScalarSparqlOp in DataFusion, use the ScalarSparqlOpAdapter. The adapter will mediate between DataFusion’s API and the given ScalarSparqlOpImpl.

Required Methods§

Source

fn name(&self) -> &FunctionName

Returns the name of the operation.

Source

fn signature(&self) -> ScalarSparqlOpSignature

Returns the signature of this operation.

Provided Methods§

Source

fn typed_value_encoding_op( &self, ) -> Option<Box<dyn ScalarSparqlOpImpl<TypedValueEncoding>>>

Returns the ScalarSparqlOpImpl for the TypedValueEncoding.

If None is returned, the operation does not support the TypedValueEncoding.

Source

fn plain_term_encoding_op( &self, ) -> Option<Box<dyn ScalarSparqlOpImpl<PlainTermEncoding>>>

Returns the ScalarSparqlOpImpl for the PlainTermEncoding.

If None is returned, the operation does not support the PlainTermEncoding.

Source

fn object_id_encoding_op( &self, _object_id_encoding: &ObjectIdEncoding, ) -> Option<Box<dyn ScalarSparqlOpImpl<ObjectIdEncoding>>>

Returns the ScalarSparqlOpImpl for the ObjectIdEncoding.

If None is returned, the operation does not support the ObjectIdEncoding.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl ScalarSparqlOp for EqualSparqlOp

Source§

impl ScalarSparqlOp for GreaterOrEqualSparqlOp

Source§

impl ScalarSparqlOp for GreaterThanSparqlOp

Source§

impl ScalarSparqlOp for LessOrEqualSparqlOp

Source§

impl ScalarSparqlOp for LessThanSparqlOp

Source§

impl ScalarSparqlOp for SameTermSparqlOp

Source§

impl ScalarSparqlOp for CastBooleanSparqlOp

Source§

impl ScalarSparqlOp for CastDateTimeSparqlOp

Source§

impl ScalarSparqlOp for CastDecimalSparqlOp

Source§

impl ScalarSparqlOp for CastDoubleSparqlOp

Source§

impl ScalarSparqlOp for CastFloatSparqlOp

Source§

impl ScalarSparqlOp for CastIntSparqlOp

Source§

impl ScalarSparqlOp for CastIntegerSparqlOp

Source§

impl ScalarSparqlOp for CastStringSparqlOp

Source§

impl ScalarSparqlOp for DaySparqlOp

Source§

impl ScalarSparqlOp for HoursSparqlOp

Source§

impl ScalarSparqlOp for MinutesSparqlOp

Source§

impl ScalarSparqlOp for MonthSparqlOp

Source§

impl ScalarSparqlOp for SecondsSparqlOp

Source§

impl ScalarSparqlOp for TimezoneSparqlOp

Source§

impl ScalarSparqlOp for TzSparqlOp

Source§

impl ScalarSparqlOp for YearSparqlOp

Source§

impl ScalarSparqlOp for BoundSparqlOp

Source§

impl ScalarSparqlOp for CoalesceSparqlOp

Source§

impl ScalarSparqlOp for IfSparqlOp

Source§

impl ScalarSparqlOp for AbsSparqlOp

Source§

impl ScalarSparqlOp for AddSparqlOp

Source§

impl ScalarSparqlOp for CeilSparqlOp

Source§

impl ScalarSparqlOp for DivSparqlOp

Source§

impl ScalarSparqlOp for FloorSparqlOp

Source§

impl ScalarSparqlOp for MulSparqlOp

Source§

impl ScalarSparqlOp for RandSparqlOp

Source§

impl ScalarSparqlOp for RoundSparqlOp

Source§

impl ScalarSparqlOp for SubSparqlOp

Source§

impl ScalarSparqlOp for UnaryMinusSparqlOp

Source§

impl ScalarSparqlOp for UnaryPlusSparqlOp

Source§

impl ScalarSparqlOp for ConcatSparqlOp

Source§

impl ScalarSparqlOp for ContainsSparqlOp

Source§

impl ScalarSparqlOp for EncodeForUriSparqlOp

Source§

impl ScalarSparqlOp for LCaseSparqlOp

Source§

impl ScalarSparqlOp for LangMatchesSparqlOp

Source§

impl ScalarSparqlOp for Md5SparqlOp

Source§

impl ScalarSparqlOp for RegexSparqlOp

Source§

impl ScalarSparqlOp for ReplaceSparqlOp

Source§

impl ScalarSparqlOp for Sha1SparqlOp

Source§

impl ScalarSparqlOp for Sha256SparqlOp

Source§

impl ScalarSparqlOp for Sha384SparqlOp

Source§

impl ScalarSparqlOp for Sha512SparqlOp

Source§

impl ScalarSparqlOp for StrAfterSparqlOp

Source§

impl ScalarSparqlOp for StrBeforeSparqlOp

Source§

impl ScalarSparqlOp for StrEndsSparqlOp

Source§

impl ScalarSparqlOp for StrLenSparqlOp

Source§

impl ScalarSparqlOp for StrStartsSparqlOp

Source§

impl ScalarSparqlOp for StrUuidSparqlOp

Source§

impl ScalarSparqlOp for SubStrSparqlOp

Source§

impl ScalarSparqlOp for UCaseSparqlOp

Source§

impl ScalarSparqlOp for BNodeSparqlOp

Source§

impl ScalarSparqlOp for DatatypeSparqlOp

Source§

impl ScalarSparqlOp for IriSparqlOp

Source§

impl ScalarSparqlOp for IsBlankSparqlOp

Source§

impl ScalarSparqlOp for IsIriSparqlOp

Source§

impl ScalarSparqlOp for IsLiteralSparqlOp

Source§

impl ScalarSparqlOp for IsNumericSparqlOp

Source§

impl ScalarSparqlOp for LangSparqlOp

Source§

impl ScalarSparqlOp for StrDtSparqlOp

Source§

impl ScalarSparqlOp for StrLangSparqlOp

Source§

impl ScalarSparqlOp for StrSparqlOp

Source§

impl ScalarSparqlOp for UuidSparqlOp