CostComputer

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

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<'a, E: ExecutableDocument, S: SchemaDefinition, V: VariableValues> CostComputer<'a, E, S, V> for DefaultCostComputer

Source§

type FieldMultipliers = UnitFieldMultipliers

Source§

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

Source§

type FieldMultipliers = RelayFieldMultipliers<E>