pub struct GroupOperand<M: IndexDomain, K: GroupKey, O: Operand> { /* private fields */ }Trait Implementations§
Source§impl<M, K, S, C, P> Apply<P, Element> for GroupOperand<M, K, OperandHandle<S, C>>where
M: IndexDomain,
K: GroupKey,
S: ElementShape + ElementTransition<P::OutShape, P::Emission>,
C: Arity,
P: ElementKernel<S>,
impl<M, K, S, C, P> Apply<P, Element> for GroupOperand<M, K, OperandHandle<S, C>>where
M: IndexDomain,
K: GroupKey,
S: ElementShape + ElementTransition<P::OutShape, P::Emission>,
C: Arity,
P: ElementKernel<S>,
type Output = GroupOperand<M, K, <OperandHandle<S, C> as Apply<P, Element>>::Output>
fn apply<'a>(
graphrecord: &'a GraphRecord,
values: Self::ReturnValue<'a>,
prepared: P::Prepared<'a>,
) -> QueryResult<<Self::Output as EvaluateOperand>::ReturnValue<'a>>where
Self: 'a,
fn estimate(operation: &P, input: Estimate, stats: &Stats<'_>) -> Estimate
Source§impl<M, K, S, C, P> Apply<P, Group> for GroupOperand<M, K, OperandHandle<S, C>>where
M: IndexDomain,
K: GroupKey,
S: ElementShape,
C: Arity,
P: GroupKernel<M, K, OperandHandle<S, C>>,
impl<M, K, S, C, P> Apply<P, Group> for GroupOperand<M, K, OperandHandle<S, C>>where
M: IndexDomain,
K: GroupKey,
S: ElementShape,
C: Arity,
P: GroupKernel<M, K, OperandHandle<S, C>>,
type Output = <P as GroupKernel<M, K, OperandHandle<S, C>>>::Output
fn apply<'a>(
graphrecord: &'a GraphRecord,
values: Self::ReturnValue<'a>,
prepared: P::Prepared<'a>,
) -> QueryResult<<Self::Output as EvaluateOperand>::ReturnValue<'a>>where
Self: 'a,
fn estimate(operation: &P, input: Estimate, stats: &Stats<'_>) -> Estimate
Source§impl<M: IndexDomain, K: GroupKey, S: ElementShape, C: Arity, P: LaneKernel<S, C>> Apply<P, Lane> for GroupOperand<M, K, OperandHandle<S, C>>
impl<M: IndexDomain, K: GroupKey, S: ElementShape, C: Arity, P: LaneKernel<S, C>> Apply<P, Lane> for GroupOperand<M, K, OperandHandle<S, C>>
type Output = GroupOperand<M, K, <OperandHandle<S, C> as Apply<P, Lane>>::Output>
fn apply<'a>(
graphrecord: &'a GraphRecord,
values: Self::ReturnValue<'a>,
prepared: P::Prepared<'a>,
) -> QueryResult<<Self::Output as EvaluateOperand>::ReturnValue<'a>>where
Self: 'a,
fn estimate(operation: &P, input: Estimate, stats: &Stats<'_>) -> Estimate
Source§impl<M, K, N, L, O, P, S> Apply<P, S> for GroupOperand<M, K, GroupOperand<N, L, O>>where
M: IndexDomain,
K: GroupKey,
N: IndexDomain,
L: GroupKey,
O: Operand,
P: Operation<Scope = S>,
S: OperationScope,
GroupOperand<N, L, O>: Apply<P, S>,
impl<M, K, N, L, O, P, S> Apply<P, S> for GroupOperand<M, K, GroupOperand<N, L, O>>where
M: IndexDomain,
K: GroupKey,
N: IndexDomain,
L: GroupKey,
O: Operand,
P: Operation<Scope = S>,
S: OperationScope,
GroupOperand<N, L, O>: Apply<P, S>,
type Output = GroupOperand<M, K, <GroupOperand<N, L, O> as Apply<P, S>>::Output>
fn apply<'a>(
graphrecord: &'a GraphRecord,
values: Self::ReturnValue<'a>,
prepared: P::Prepared<'a>,
) -> QueryResult<<Self::Output as EvaluateOperand>::ReturnValue<'a>>where
Self: 'a,
fn estimate(operation: &P, input: Estimate, stats: &Stats<'_>) -> Estimate
Source§impl<M: IndexDomain, K: GroupKey, O: CacheableOperand> CacheableOperand for GroupOperand<M, K, O>
impl<M: IndexDomain, K: GroupKey, O: CacheableOperand> CacheableOperand for GroupOperand<M, K, O>
type Cached = PartitionOwned<M, K, <O as CacheableOperand>::Cached>
fn into_cached(values: Self::ReturnValue<'_>) -> Self::Cached
fn from_cached(cached: &Self::Cached) -> Self::ReturnValue<'_>
Source§impl<M: IndexDomain, K: GroupKey, O: Operand> Clone for GroupOperand<M, K, O>
impl<M: IndexDomain, K: GroupKey, O: Operand> Clone for GroupOperand<M, K, O>
Source§impl<M: IndexDomain, K: GroupKey, O: Operand> Estimated for GroupOperand<M, K, O>
impl<M: IndexDomain, K: GroupKey, O: Operand> Estimated for GroupOperand<M, K, O>
Source§impl<M: IndexDomain, K: GroupKey, O: Operand> EvaluateOperand for GroupOperand<M, K, O>
impl<M: IndexDomain, K: GroupKey, O: Operand> EvaluateOperand for GroupOperand<M, K, O>
type ReturnValue<'a> = Partition<'a, M, K, O> where Self: 'a
fn evaluate<'a>( &'a self, graphrecord: &'a GraphRecord, cache: &'a EvaluationCache<'a>, ) -> QueryResult<Self::ReturnValue<'a>>
Source§impl<M: IndexDomain, K: GroupKey, O: IntoReturn> IntoReturn for GroupOperand<M, K, O>
impl<M: IndexDomain, K: GroupKey, O: IntoReturn> IntoReturn for GroupOperand<M, K, O>
type Return<'a> = ReturnPartition<'a, M, K, <O as IntoReturn>::Return<'a>> where Self: 'a
fn into_return<'a>(values: Partition<'a, M, K, O>) -> Self::Return<'a>where
Self: 'a,
Source§impl<M: IndexDomain, K: GroupKey, O: Operand> Operand for GroupOperand<M, K, O>
impl<M: IndexDomain, K: GroupKey, O: Operand> Operand for GroupOperand<M, K, O>
fn context(&self) -> &dyn OperandContext<Self>
fn as_plan_node(&self) -> &dyn PlanNode
fn from_context(context: Arc<dyn OperandContext<Self>>) -> Self
fn new<C: OperandContext<Self>>(context: C) -> Self
fn explain(&self) -> Explanation<'_>
Source§impl<'a, M: IndexDomain, K: GroupKey, O: IntoReturn> ReturnOperand<'a> for GroupOperand<M, K, O>
impl<'a, M: IndexDomain, K: GroupKey, O: IntoReturn> ReturnOperand<'a> for GroupOperand<M, K, O>
type ReturnValue = <GroupOperand<M, K, O> as IntoReturn>::Return<'a>
fn evaluate( &'a self, graphrecord: &'a GraphRecord, cache: &'a EvaluationCache<'a>, ) -> QueryResult<Self::ReturnValue>
fn optimize( self, optimizer: &Optimizer, stats: &Stats<'_>, ) -> (Self, OptimizationReport)
fn fmt_plan(&self, formatter: &mut Formatter<'_>) -> Result
Auto Trait Implementations§
impl<M, K, O> !RefUnwindSafe for GroupOperand<M, K, O>
impl<M, K, O> !UnwindSafe for GroupOperand<M, K, O>
impl<M, K, O> Freeze for GroupOperand<M, K, O>
impl<M, K, O> Send for GroupOperand<M, K, O>
impl<M, K, O> Sync for GroupOperand<M, K, O>
impl<M, K, O> Unpin for GroupOperand<M, K, O>
impl<M, K, O> UnsafeUnpin for GroupOperand<M, K, O>
Blanket Implementations§
Source§impl<O> Absolute for Owhere
O: Apply<AbsoluteOperation>,
impl<O> Absolute for Owhere
O: Apply<AbsoluteOperation>,
type ReturnOperand = <O as Apply<AbsoluteOperation>>::Output
fn abs(&self) -> <O as Absolute>::ReturnOperand
Source§impl<O, A> Add<A> for O
impl<O, A> Add<A> for O
type ReturnOperand = <O as Apply<AddOperation<A>>>::Output
fn add(&self, argument: A) -> <O as Add<A>>::ReturnOperand
Source§impl<O> All for Owhere
O: Apply<AllOperation>,
impl<O> All for Owhere
O: Apply<AllOperation>,
type ReturnOperand = <O as Apply<AllOperation>>::Output
fn all(&self) -> <O as All>::ReturnOperand
Source§impl<O, M> And<M> for O
impl<O, M> And<M> for O
type ReturnOperand = <O as Apply<AndOperation<M>>>::Output
fn and(&self, other: M) -> <O as And<M>>::ReturnOperand
Source§impl<O> Any for Owhere
O: Apply<AnyOperation>,
impl<O> Any for Owhere
O: Apply<AnyOperation>,
type ReturnOperand = <O as Apply<AnyOperation>>::Output
fn any(&self) -> <O as Any>::ReturnOperand
Source§impl<O> Attribute for Owhere
O: Apply<AttributeOperation>,
impl<O> Attribute for Owhere
O: Apply<AttributeOperation>,
type ReturnOperand = <O as Apply<AttributeOperation>>::Output
fn attribute( &self, attribute: GraphRecordAttribute, ) -> <O as Attribute>::ReturnOperand
Source§impl<O> Attributes for Owhere
O: Apply<AttributesOperation>,
impl<O> Attributes for Owhere
O: Apply<AttributesOperation>,
type ReturnOperand = <O as Apply<AttributesOperation>>::Output
fn attributes(&self) -> <O as Attributes>::ReturnOperand
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<O> Broadcast for Owhere
O: Apply<BroadcastOperation>,
impl<O> Broadcast for Owhere
O: Apply<BroadcastOperation>,
type ReturnOperand = <O as Apply<BroadcastOperation>>::Output
fn broadcast(&self) -> <O as Broadcast>::ReturnOperand
Source§impl<O, A> BroadcastVia<<A as IndexedElementSource>::IndexDomain, A> for Owhere
A: IndexedElementSource,
BroadcastViaOperation<A>: Operation,
O: Apply<BroadcastViaOperation<A>>,
impl<O, A> BroadcastVia<<A as IndexedElementSource>::IndexDomain, A> for Owhere
A: IndexedElementSource,
BroadcastViaOperation<A>: Operation,
O: Apply<BroadcastViaOperation<A>>,
type ReturnOperand = <O as Apply<BroadcastViaOperation<A>>>::Output
fn broadcast_via( &self, via: A, ) -> <O as BroadcastVia<<A as IndexedElementSource>::IndexDomain, A>>::ReturnOperand
Source§impl<O> BucketErrors for Owhere
O: Apply<BucketErrorsOperation>,
impl<O> BucketErrors for Owhere
O: Apply<BucketErrorsOperation>,
type ReturnOperand = <O as Apply<BucketErrorsOperation>>::Output
fn bucket_errors(&self) -> <O as BucketErrors>::ReturnOperand
Source§impl<O, T> Cast<T> for O
impl<O, T> Cast<T> for O
type ReturnOperand = <O as Apply<CastOperation<T>>>::Output
fn cast(&self, target: T) -> <O as Cast<T>>::ReturnOperand
Source§impl<O> Ceil for Owhere
O: Apply<CeilOperation>,
impl<O> Ceil for Owhere
O: Apply<CeilOperation>,
type ReturnOperand = <O as Apply<CeilOperation>>::Output
fn ceil(&self) -> <O as Ceil>::ReturnOperand
Source§impl<O> ChildIndex for Owhere
O: Apply<ChildIndexOperation>,
impl<O> ChildIndex for Owhere
O: Apply<ChildIndexOperation>,
type ReturnOperand = <O as Apply<ChildIndexOperation>>::Output
fn child_index(&self) -> <O as ChildIndex>::ReturnOperand
Source§impl<O, L, U> Clip<L, U> for O
impl<O, L, U> Clip<L, U> for O
type ReturnOperand = <O as Apply<ClipOperation<L, U>>>::Output
fn clip(&self, lower: L, upper: U) -> <O as Clip<L, U>>::ReturnOperand
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<O, A> Contains<A> for O
impl<O, A> Contains<A> for O
type ReturnOperand = <O as Apply<ContainsOperation<A>>>::Output
fn contains(&self, argument: A) -> <O as Contains<A>>::ReturnOperand
Source§impl<O> Count for Owhere
O: Apply<CountOperation>,
impl<O> Count for Owhere
O: Apply<CountOperation>,
type ReturnOperand = <O as Apply<CountOperation>>::Output
fn count(&self) -> <O as Count>::ReturnOperand
Source§impl<O> CubeRoot for Owhere
O: Apply<CubeRootOperation>,
impl<O> CubeRoot for Owhere
O: Apply<CubeRootOperation>,
type ReturnOperand = <O as Apply<CubeRootOperation>>::Output
fn cbrt(&self) -> <O as CubeRoot>::ReturnOperand
Source§impl<O> DiscardIndex for Owhere
O: Apply<DiscardIndexOperation>,
impl<O> DiscardIndex for Owhere
O: Apply<DiscardIndexOperation>,
type ReturnOperand = <O as Apply<DiscardIndexOperation>>::Output
fn discard_index(&self) -> <O as DiscardIndex>::ReturnOperand
Source§impl<O> DiscardValue for Owhere
O: Apply<DiscardValueOperation>,
impl<O> DiscardValue for Owhere
O: Apply<DiscardValueOperation>,
type ReturnOperand = <O as Apply<DiscardValueOperation>>::Output
fn discard_value(&self) -> <O as DiscardValue>::ReturnOperand
Source§impl<O, A> Divide<A> for O
impl<O, A> Divide<A> for O
type ReturnOperand = <O as Apply<DivideOperation<A>>>::Output
fn divide(&self, argument: A) -> <O as Divide<A>>::ReturnOperand
Source§impl<O> DropDuplicates for Owhere
O: Apply<DropDuplicatesOperation>,
impl<O> DropDuplicates for Owhere
O: Apply<DropDuplicatesOperation>,
type ReturnOperand = <O as Apply<DropDuplicatesOperation>>::Output
fn drop_duplicates(&self) -> <O as DropDuplicates>::ReturnOperand
Source§impl<O> Edges for Owhere
O: Apply<EdgesOperation>,
impl<O> Edges for Owhere
O: Apply<EdgesOperation>,
type ReturnOperand = <O as Apply<EdgesOperation>>::Output
fn edges(&self, direction: EdgeDirection) -> <O as Edges>::ReturnOperand
Source§impl<O, A> EndsWith<A> for O
impl<O, A> EndsWith<A> for O
type ReturnOperand = <O as Apply<EndsWithOperation<A>>>::Output
fn ends_with(&self, argument: A) -> <O as EndsWith<A>>::ReturnOperand
Source§impl<O> Enumerate for Owhere
O: Apply<EnumerateOperation>,
impl<O> Enumerate for Owhere
O: Apply<EnumerateOperation>,
type ReturnOperand = <O as Apply<EnumerateOperation>>::Output
fn enumerate(&self) -> <O as Enumerate>::ReturnOperand
Source§impl<O, A> EqualTo<A> for O
impl<O, A> EqualTo<A> for O
type ReturnOperand = <O as Apply<EqualToOperation<A>>>::Output
fn equal_to(&self, argument: A) -> <O as EqualTo<A>>::ReturnOperand
Source§impl<O> ErrorKind for Owhere
O: Apply<ErrorKindOperation>,
impl<O> ErrorKind for Owhere
O: Apply<ErrorKindOperation>,
type ReturnOperand = <O as Apply<ErrorKindOperation>>::Output
fn kind(&self) -> <O as ErrorKind>::ReturnOperand
Source§impl<O> ErrorKindName for Owhere
O: Apply<ErrorKindNameOperation>,
impl<O> ErrorKindName for Owhere
O: Apply<ErrorKindNameOperation>,
type ReturnOperand = <O as Apply<ErrorKindNameOperation>>::Output
fn name(&self) -> <O as ErrorKindName>::ReturnOperand
Source§impl<O> Errors for Owhere
O: Apply<ErrorsOperation>,
impl<O> Errors for Owhere
O: Apply<ErrorsOperation>,
type ReturnOperand = <O as Apply<ErrorsOperation>>::Output
fn errors(&self) -> <O as Errors>::ReturnOperand
Source§impl<O, M> ExclusiveOr<M> for O
impl<O, M> ExclusiveOr<M> for O
type ReturnOperand = <O as Apply<ExclusiveOrOperation<M>>>::Output
fn xor(&self, other: M) -> <O as ExclusiveOr<M>>::ReturnOperand
Source§impl<O> Exponential for Owhere
O: Apply<ExponentialOperation>,
impl<O> Exponential for Owhere
O: Apply<ExponentialOperation>,
type ReturnOperand = <O as Apply<ExponentialOperation>>::Output
fn exp(&self) -> <O as Exponential>::ReturnOperand
Source§impl<O, M> Filter<M> for O
impl<O, M> Filter<M> for O
type ReturnOperand = <O as Apply<FilterOperation<M>>>::Output
fn filter(&self, mask: M) -> <O as Filter<M>>::ReturnOperand
Source§impl<O> First for Owhere
O: Apply<FirstOperation>,
impl<O> First for Owhere
O: Apply<FirstOperation>,
type ReturnOperand = <O as Apply<FirstOperation>>::Output
fn first(&self) -> <O as First>::ReturnOperand
Source§impl<O> Floor for Owhere
O: Apply<FloorOperation>,
impl<O> Floor for Owhere
O: Apply<FloorOperation>,
type ReturnOperand = <O as Apply<FloorOperation>>::Output
fn floor(&self) -> <O as Floor>::ReturnOperand
Source§impl<O, A> GreaterThan<A> for O
impl<O, A> GreaterThan<A> for O
type ReturnOperand = <O as Apply<GreaterThanOperation<A>>>::Output
fn greater_than(&self, argument: A) -> <O as GreaterThan<A>>::ReturnOperand
Source§impl<O, A> GreaterThanOrEqualTo<A> for O
impl<O, A> GreaterThanOrEqualTo<A> for O
type ReturnOperand = <O as Apply<GreaterThanOrEqualToOperation<A>>>::Output
fn greater_than_or_equal_to( &self, argument: A, ) -> <O as GreaterThanOrEqualTo<A>>::ReturnOperand
Source§impl<O, K> GroupBy<K> for O
impl<O, K> GroupBy<K> for O
type ReturnOperand = <O as Apply<GroupByOperation<K>>>::Output
fn group_by(&self, key: K) -> <O as GroupBy<K>>::ReturnOperand
Source§impl<O> HasAttribute for Owhere
O: Apply<HasAttributeOperation>,
impl<O> HasAttribute for Owhere
O: Apply<HasAttributeOperation>,
type ReturnOperand = <O as Apply<HasAttributeOperation>>::Output
fn has_attribute( &self, attribute: GraphRecordAttribute, ) -> <O as HasAttribute>::ReturnOperand
Source§impl<O> HasErrorCause for Owhere
O: Operand,
impl<O> HasErrorCause for Owhere
O: Operand,
type ReturnOperand<C: Error + 'static> = <O as Apply<HasErrorCauseOperation<C>>>::Output where O: Apply<HasErrorCauseOperation<C>>
fn has_cause<C>(&self) -> <O as HasErrorCause>::ReturnOperand<C>
Source§impl<O, P> Having<P> for O
impl<O, P> Having<P> for O
type ReturnOperand = <O as Apply<HavingOperation<P>>>::Output
fn having(&self, predicate: P) -> <O as Having<P>>::ReturnOperand
Source§impl<O> InErrorGroup for Owhere
O: Operand,
impl<O> InErrorGroup for Owhere
O: Operand,
type ReturnOperand<G: ErrorGroup> = <O as Apply<InErrorGroupOperation<G>>>::Output where O: Apply<InErrorGroupOperation<G>>
fn in_error_group<G>(&self) -> <O as InErrorGroup>::ReturnOperand<G>
Source§impl<O> InGroup for Owhere
O: Apply<InGroupOperation>,
impl<O> InGroup for Owhere
O: Apply<InGroupOperation>,
type ReturnOperand = <O as Apply<InGroupOperation>>::Output
fn in_group(&self, group: GraphRecordAttribute) -> <O as InGroup>::ReturnOperand
Source§impl<O> Index for Owhere
O: Apply<IndexOperation>,
impl<O> Index for Owhere
O: Apply<IndexOperation>,
type ReturnOperand = <O as Apply<IndexOperation>>::Output
fn index(&self) -> <O as Index>::ReturnOperand
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more