pub trait CostComputer<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues> {
    type FieldMultipliers: FieldMultipliers<E>;

    // Required methods
    fn new(
        operation_definition: &'a E::OperationDefinition,
        schema_definition: &'a S,
        variable_values: &'a V
    ) -> Self;
    fn cost_for_field_definition(
        &self,
        field_definition: &S::FieldDefinition
    ) -> usize;
    fn field_multipliers(
        &self,
        field_definition: &S::FieldDefinition,
        field: &E::Field
    ) -> Self::FieldMultipliers;
}

Required Associated Types§

Required Methods§

source

fn new( operation_definition: &'a E::OperationDefinition, schema_definition: &'a S, variable_values: &'a V ) -> Self

source

fn cost_for_field_definition( &self, field_definition: &S::FieldDefinition ) -> usize

source

fn field_multipliers( &self, field_definition: &S::FieldDefinition, field: &E::Field ) -> Self::FieldMultipliers

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues> CostComputer<'a, E, S, V> for DefaultCostComputer

§

type FieldMultipliers = UnitFieldMultipliers

source§

impl<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues> CostComputer<'a, E, S, V> for RelayCostComputer<'a, E, S, V>

§

type FieldMultipliers = RelayFieldMultipliers<E>