pub trait Ternary {
    type Boolean;
    type Output;

    fn ternary(
        condition: &Self::Boolean,
        first: &Self,
        second: &Self
    ) -> Self::Output
    where
        Self: Sized
; }
Expand description

Trait for ternary operations.

Required Associated Types§

Required Methods§

source

fn ternary(condition: &Self::Boolean, first: &Self, second: &Self) -> Self::Outputwhere
    Self: Sized,

Returns first if condition is true, otherwise returns second.

Implementations on Foreign Types§

§

impl<E> Ternary for Field<E>where
    E: Environment,

§

fn ternary(
    condition: &<Field<E> as Ternary>::Boolean,
    first: &Field<E>,
    second: &Field<E>
) -> <Field<E> as Ternary>::Output

Returns first if condition is true, otherwise returns second.

§

type Boolean = Boolean<E>

§

type Output = Field<E>

§

impl<E> Ternary for Boolean<E>where
    E: Environment,

§

fn ternary(
    condition: &<Boolean<E> as Ternary>::Boolean,
    first: &Boolean<E>,
    second: &Boolean<E>
) -> <Boolean<E> as Ternary>::Output

Returns first if condition is true, otherwise returns second.

§

type Boolean = Boolean<E>

§

type Output = Boolean<E>

§

impl<E> Ternary for Group<E>where
    E: Environment,

§

fn ternary(
    condition: &<Group<E> as Ternary>::Boolean,
    first: &Group<E>,
    second: &Group<E>
) -> <Group<E> as Ternary>::Output

Returns first if condition is true, otherwise returns second.

§

type Boolean = Boolean<E>

§

type Output = Group<E>

§

impl<E> Ternary for Scalar<E>where
    E: Environment,

§

fn ternary(
    condition: &<Scalar<E> as Ternary>::Boolean,
    first: &Scalar<E>,
    second: &Scalar<E>
) -> <Scalar<E> as Ternary>::Output

Returns first if condition is true, otherwise returns second.

§

type Boolean = Boolean<E>

§

type Output = Scalar<E>

§

impl<E, I> Ternary for Integer<E, I>where
    E: Environment,
    I: IntegerType,

§

fn ternary(
    condition: &<Integer<E, I> as Ternary>::Boolean,
    first: &Integer<E, I>,
    second: &Integer<E, I>
) -> <Integer<E, I> as Ternary>::Output

Returns first if condition is true, otherwise returns second.

§

type Boolean = Boolean<E>

§

type Output = Integer<E, I>

Implementors§