Skip to main content

ElementKernel

Trait ElementKernel 

Source
pub trait ElementKernel<S: ElementShape + ElementTransition<Self::OutShape, Self::Emission>>: Operation<Scope = Element> {
    type OutShape: ElementShape;
    type Emission: ElementEmission;

    // Required method
    fn pipeline<'a>(
        graphrecord: &'a GraphRecord,
        prepared: Self::Prepared<'a>,
    ) -> QueryResult<ElementPipeline<'a, S, Self>>;

    // Provided method
    fn estimate(&self, input: Estimate, stats: &Stats<'_>) -> Estimate { ... }
}

Required Associated Types§

Required Methods§

Source

fn pipeline<'a>( graphrecord: &'a GraphRecord, prepared: Self::Prepared<'a>, ) -> QueryResult<ElementPipeline<'a, S, Self>>

Provided Methods§

Source

fn estimate(&self, input: Estimate, stats: &Stats<'_>) -> Estimate

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl ElementKernel<Bare<FailureKindValue>> for ErrorKindNameOperation

Source§

impl ElementKernel<Bare<FailureValue>> for ErrorKindOperation

Source§

impl ElementKernel<Bare<Mask>> for NotOperation

Source§

impl ElementKernel<Indexed<GraphRecordAttribute, Unit>> for ViaEdgesOperation

Source§

impl ElementKernel<Indexed<GraphRecordAttribute, Unit>> for ViaNeighborsOperation

Source§

impl ElementKernel<Indexed<u32, Unit>> for EndpointOperation

Source§

impl ElementKernel<Indexed<u32, Unit>> for ViaNodesOperation

Source§

impl<C: Error + 'static> ElementKernel<Bare<FailureValue>> for HasErrorCauseOperation<C>

Source§

impl<D: Diagnostic> ElementKernel<Bare<FailureValue>> for IsErrorKindOperation<D>

Source§

impl<E: EntityAttributes, I: IndexDomain> ElementKernel<Indexed<I, EntityReference<E>>> for AttributeOperation

Source§

impl<E: EntityAttributes, I: IndexDomain> ElementKernel<Indexed<I, EntityReference<E>>> for AttributesOperation

Source§

impl<E: EntityAttributes, I: IndexDomain> ElementKernel<Indexed<I, EntityReference<E>>> for HasAttributeOperation

Source§

impl<E: EntityAttributes> ElementKernel<Indexed<E, Unit>> for HasAttributeOperation

Source§

impl<E: EntityDomain, I: IndexDomain> ElementKernel<Indexed<I, EntityReference<E>>> for IndexOperation

Source§

impl<E: EntityDomain, I: IndexDomain> ElementKernel<Indexed<I, IndexValue<E>>> for ResolveOperation

Source§

impl<E: EntityDomain> ElementKernel<Bare<IndexValue<E>>> for ResolveOperation

Source§

impl<E: IndicesInGroup, I: IndexDomain> ElementKernel<Indexed<I, EntityReference<E>>> for InGroupOperation

Source§

impl<G: ErrorGroup> ElementKernel<Bare<FailureValue>> for InErrorGroupOperation<G>

Source§

impl<I, M> ElementKernel<Indexed<I, Mask>> for AndOperation<M>

Source§

impl<I, M> ElementKernel<Indexed<I, Mask>> for ExclusiveOrOperation<M>

Source§

impl<I, M> ElementKernel<Indexed<I, Mask>> for OrOperation<M>

Source§

impl<I, S, T> ElementKernel<Indexed<I, S>> for TransitionOperation<T>

Source§

impl<I, V, A, B> ElementKernel<Indexed<I, V>> for ReplaceAllOperation<A, B>

Source§

impl<I, V, A, B> ElementKernel<Indexed<I, V>> for ReplaceOperation<A, B>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for AddOperation<A>
where I: IndexDomain, V: ValueAdd, A: ArgumentSource<Keyed<I>, V>,

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for ContainsOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for DivideOperation<A>
where I: IndexDomain, V: ValueDivide, A: ArgumentSource<Keyed<I>, V>,

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for EndsWithOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for EqualToOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for GreaterThanOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for GreaterThanOrEqualToOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for IsInOperation<A>
where I: IndexDomain, V: ValueEquality, A: SetSource<V>, for<'a> V::Value<'a>: Eq + Hash,

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for LessThanOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for LessThanOrEqualToOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for MatchesOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for ModuloOperation<A>
where I: IndexDomain, V: ValueModulo, A: ArgumentSource<Keyed<I>, V>,

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for MultiplyOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for NotEqualToOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for PowerOperation<A>
where I: IndexDomain, V: ValuePower, A: ArgumentSource<Keyed<I>, V>,

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for SplitOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for StartsWithOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for StripPrefixOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for StripSuffixOperation<A>

Source§

impl<I, V, A> ElementKernel<Indexed<I, V>> for SubtractOperation<A>

Source§

impl<I, V, C, R> ElementKernel<Indexed<I, V>> for ReplaceErrorsWithCause<C, R>
where I: IndexDomain, V: ValueDomain, C: Error + 'static, R: ArgumentSource<Keyed<I>, V>,

Source§

impl<I, V, D, R> ElementKernel<Indexed<I, V>> for ReplaceErrorsOf<D, R>

Source§

impl<I, V, G, R> ElementKernel<Indexed<I, V>> for ReplaceErrorsIn<G, R>

Source§

impl<I, V, L, U> ElementKernel<Indexed<I, V>> for ClipOperation<L, U>
where I: IndexDomain, V: ValueClip, L: ArgumentSource<Keyed<I>, V>, U: ArgumentSource<Keyed<I>, V>,

Source§

impl<I, V, M> ElementKernel<Indexed<I, V>> for FilterOperation<M>

Source§

impl<I, V, R> ElementKernel<Indexed<I, V>> for Replace<R>
where I: IndexDomain, V: ValueDomain, R: ArgumentSource<Keyed<I>, V>,

Source§

impl<I, V, T> ElementKernel<Indexed<I, V>> for CastOperation<T>
where I: IndexDomain, V: ValueCast<T>, T: CastTarget,

Source§

impl<I, V, W, C> ElementKernel<Indexed<I, V>> for PadEndOperation<W, C>

Source§

impl<I, V, W, C> ElementKernel<Indexed<I, V>> for PadStartOperation<W, C>

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for AbsoluteOperation

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for CeilOperation
where I: IndexDomain, V: ValueCeil,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for CubeRootOperation

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for ExponentialOperation

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for FloorOperation
where I: IndexDomain, V: ValueFloor,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for LengthOperation
where I: IndexDomain, V: StringValue,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for LogarithmOperation

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for LowercaseOperation
where I: IndexDomain, V: StringValue,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for NegateOperation
where I: IndexDomain, V: ValueNegate,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for ReverseOperation
where I: IndexDomain, V: StringValue,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for RoundOperation
where I: IndexDomain, V: ValueRound,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for SignOperation
where I: IndexDomain, V: ValueSign,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for SliceOperation
where I: IndexDomain, V: StringValue,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for SquareRootOperation

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for TrimEndOperation
where I: IndexDomain, V: StringValue,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for TrimOperation
where I: IndexDomain, V: StringValue,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for TrimStartOperation
where I: IndexDomain, V: StringValue,

Source§

impl<I, V> ElementKernel<Indexed<I, V>> for UppercaseOperation
where I: IndexDomain, V: StringValue,

Source§

impl<I: EntityAttributes> ElementKernel<Indexed<I, Unit>> for AttributeOperation

Source§

impl<I: EntityAttributes> ElementKernel<Indexed<I, Unit>> for AttributesOperation

Source§

impl<I: IndexDomain, C: Error + 'static> ElementKernel<Indexed<I, FailureValue>> for HasErrorCauseOperation<C>

Source§

impl<I: IndexDomain, D: Diagnostic> ElementKernel<Indexed<I, FailureValue>> for IsErrorKindOperation<D>

Source§

impl<I: IndexDomain, G: ErrorGroup> ElementKernel<Indexed<I, FailureValue>> for InErrorGroupOperation<G>

Source§

impl<I: IndexDomain, P: IndexDomain, C: IndexDomain> ElementKernel<Indexed<I, IndexValue<ExpandedIndex<P, C>>>> for ChildIndexOperation

Source§

impl<I: IndexDomain, P: IndexDomain, C: IndexDomain> ElementKernel<Indexed<I, IndexValue<ExpandedIndex<P, C>>>> for ParentIndexOperation

Source§

impl<I: IndexDomain, V: BareValueDomain> ElementKernel<Indexed<I, V>> for DiscardIndexOperation

Source§

impl<I: IndexDomain, V: ValueDomain, C: Error + 'static> ElementKernel<Indexed<I, V>> for DropErrorsWithCause<C>

Source§

impl<I: IndexDomain, V: ValueDomain, D: Diagnostic> ElementKernel<Indexed<I, V>> for DropErrorsOf<D>

Source§

impl<I: IndexDomain, V: ValueDomain, G: ErrorGroup> ElementKernel<Indexed<I, V>> for DropErrorsIn<G>

Source§

impl<I: IndexDomain, V: ValueDomain> ElementKernel<Indexed<I, V>> for DiscardValueOperation

Source§

impl<I: IndexDomain, V: ValueDomain> ElementKernel<Indexed<I, V>> for Drop

Source§

impl<I: IndexDomain, V: ValueDomain> ElementKernel<Indexed<I, V>> for ErrorsOperation

Source§

impl<I: IndexDomain, V: ValueKindTest> ElementKernel<Indexed<I, V>> for IsIntOperation

Source§

impl<I: IndexDomain, V: ValueKindTest> ElementKernel<Indexed<I, V>> for IsStringOperation

Source§

impl<I: IndexDomain, V: ValueScalarKindTest> ElementKernel<Indexed<I, V>> for IsBoolOperation

Source§

impl<I: IndexDomain, V: ValueScalarKindTest> ElementKernel<Indexed<I, V>> for IsDateTimeOperation

Source§

impl<I: IndexDomain, V: ValueScalarKindTest> ElementKernel<Indexed<I, V>> for IsDurationOperation

Source§

impl<I: IndexDomain, V: ValueScalarKindTest> ElementKernel<Indexed<I, V>> for IsFloatOperation

Source§

impl<I: IndexDomain, V: ValueScalarKindTest> ElementKernel<Indexed<I, V>> for IsNullOperation

Source§

impl<I: IndexDomain> ElementKernel<Indexed<I, EntityReference<GraphRecordAttribute>>> for ViaEdgesOperation

Source§

impl<I: IndexDomain> ElementKernel<Indexed<I, EntityReference<GraphRecordAttribute>>> for ViaNeighborsOperation

Source§

impl<I: IndexDomain> ElementKernel<Indexed<I, EntityReference<u32>>> for EndpointOperation

Source§

impl<I: IndexDomain> ElementKernel<Indexed<I, EntityReference<u32>>> for ViaNodesOperation

Source§

impl<I: IndexDomain> ElementKernel<Indexed<I, FailureKindValue>> for ErrorKindNameOperation

Source§

impl<I: IndexDomain> ElementKernel<Indexed<I, FailureValue>> for ErrorKindOperation

Source§

impl<I: IndexDomain> ElementKernel<Indexed<I, Mask>> for NotOperation

Source§

impl<I: IndicesInGroup> ElementKernel<Indexed<I, Unit>> for InGroupOperation

Source§

impl<K: IndexDomain> ElementKernel<Indexed<K, Unit>> for IndexOperation

Source§

impl<M> ElementKernel<Bare<Mask>> for AndOperation<M>

Source§

impl<M> ElementKernel<Bare<Mask>> for ExclusiveOrOperation<M>

Source§

impl<M> ElementKernel<Bare<Mask>> for OrOperation<M>

Source§

impl<P, C, W, S> ElementKernel<Indexed<ExpandedIndex<P, C>, W>> for ExpandToOperation<S>

Source§

impl<P: IndexDomain, C: IndexDomain> ElementKernel<Bare<IndexValue<ExpandedIndex<P, C>>>> for ChildIndexOperation

Source§

impl<P: IndexDomain, C: IndexDomain> ElementKernel<Bare<IndexValue<ExpandedIndex<P, C>>>> for ParentIndexOperation

Source§

impl<S, T> ElementKernel<Bare<S>> for TransitionOperation<T>

Source§

impl<V, A, B> ElementKernel<Bare<V>> for ReplaceAllOperation<A, B>

Source§

impl<V, A, B> ElementKernel<Bare<V>> for ReplaceOperation<A, B>

Source§

impl<V, A> ElementKernel<Bare<V>> for AddOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for ContainsOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for DivideOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for EndsWithOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for EqualToOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for GreaterThanOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for GreaterThanOrEqualToOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for IsInOperation<A>
where V: ValueEquality + BareValueDomain, A: SetSource<V>, for<'a> V::Value<'a>: Eq + Hash,

Source§

impl<V, A> ElementKernel<Bare<V>> for LessThanOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for LessThanOrEqualToOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for MatchesOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for ModuloOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for MultiplyOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for NotEqualToOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for PowerOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for SplitOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for StartsWithOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for StripPrefixOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for StripSuffixOperation<A>

Source§

impl<V, A> ElementKernel<Bare<V>> for SubtractOperation<A>

Source§

impl<V, C, R> ElementKernel<Bare<V>> for ReplaceErrorsWithCause<C, R>
where V: BareValueDomain, C: Error + 'static, R: ArgumentSource<Unaligned, V>,

Source§

impl<V, D, R> ElementKernel<Bare<V>> for ReplaceErrorsOf<D, R>

Source§

impl<V, G, R> ElementKernel<Bare<V>> for ReplaceErrorsIn<G, R>

Source§

impl<V, L, U> ElementKernel<Bare<V>> for ClipOperation<L, U>

Source§

impl<V, M> ElementKernel<Bare<V>> for FilterOperation<M>

Source§

impl<V, R> ElementKernel<Bare<V>> for Replace<R>

Source§

impl<V, T> ElementKernel<Bare<V>> for CastOperation<T>

Source§

impl<V, W, C> ElementKernel<Bare<V>> for PadEndOperation<W, C>

Source§

impl<V, W, C> ElementKernel<Bare<V>> for PadStartOperation<W, C>

Source§

impl<V: BareValueDomain, C: Error + 'static> ElementKernel<Bare<V>> for DropErrorsWithCause<C>

Source§

impl<V: BareValueDomain, D: Diagnostic> ElementKernel<Bare<V>> for DropErrorsOf<D>

Source§

impl<V: BareValueDomain, G: ErrorGroup> ElementKernel<Bare<V>> for DropErrorsIn<G>

Source§

impl<V: BareValueDomain> ElementKernel<Bare<V>> for Drop

Source§

impl<V: BareValueDomain> ElementKernel<Bare<V>> for ErrorsOperation

Source§

impl<V: ValueKindTest + BareValueDomain> ElementKernel<Bare<V>> for IsIntOperation

Source§

impl<V: ValueKindTest + BareValueDomain> ElementKernel<Bare<V>> for IsStringOperation

Source§

impl<V: ValueScalarKindTest + BareValueDomain> ElementKernel<Bare<V>> for IsBoolOperation

Source§

impl<V: ValueScalarKindTest + BareValueDomain> ElementKernel<Bare<V>> for IsDateTimeOperation

Source§

impl<V: ValueScalarKindTest + BareValueDomain> ElementKernel<Bare<V>> for IsDurationOperation

Source§

impl<V: ValueScalarKindTest + BareValueDomain> ElementKernel<Bare<V>> for IsFloatOperation

Source§

impl<V: ValueScalarKindTest + BareValueDomain> ElementKernel<Bare<V>> for IsNullOperation

Source§

impl<V> ElementKernel<Bare<V>> for AbsoluteOperation

Source§

impl<V> ElementKernel<Bare<V>> for CeilOperation

Source§

impl<V> ElementKernel<Bare<V>> for CubeRootOperation

Source§

impl<V> ElementKernel<Bare<V>> for ExponentialOperation

Source§

impl<V> ElementKernel<Bare<V>> for FloorOperation

Source§

impl<V> ElementKernel<Bare<V>> for LengthOperation

Source§

impl<V> ElementKernel<Bare<V>> for LogarithmOperation

Source§

impl<V> ElementKernel<Bare<V>> for LowercaseOperation

Source§

impl<V> ElementKernel<Bare<V>> for NegateOperation

Source§

impl<V> ElementKernel<Bare<V>> for ReverseOperation

Source§

impl<V> ElementKernel<Bare<V>> for RoundOperation

Source§

impl<V> ElementKernel<Bare<V>> for SignOperation

Source§

impl<V> ElementKernel<Bare<V>> for SliceOperation

Source§

impl<V> ElementKernel<Bare<V>> for SquareRootOperation

Source§

impl<V> ElementKernel<Bare<V>> for TrimEndOperation

Source§

impl<V> ElementKernel<Bare<V>> for TrimOperation

Source§

impl<V> ElementKernel<Bare<V>> for TrimStartOperation

Source§

impl<V> ElementKernel<Bare<V>> for UppercaseOperation