Skip to main content

ApplyFirst

Trait ApplyFirst 

Source
pub trait ApplyFirst: Lift {
    // Provided method
    fn apply_first<'a, A: 'a + Clone, B: 'a + Clone>(
        fa: <Self as Kind_cdc7cd43dac7585f>::Of<'a, A>,
        fb: <Self as Kind_cdc7cd43dac7585f>::Of<'a, B>,
    ) -> <Self as Kind_cdc7cd43dac7585f>::Of<'a, A> { ... }
}
Expand description

A type class for types that support combining two contexts, keeping the first value.

ApplyFirst provides the ability to sequence two computations but discard the result of the second computation, keeping only the result of the first.

Provided Methods§

Source

fn apply_first<'a, A: 'a + Clone, B: 'a + Clone>( fa: <Self as Kind_cdc7cd43dac7585f>::Of<'a, A>, fb: <Self as Kind_cdc7cd43dac7585f>::Of<'a, B>, ) -> <Self as Kind_cdc7cd43dac7585f>::Of<'a, A>

Combines two contexts, keeping the value from the first context.

This function sequences two computations and discards the result of the second computation, keeping only the result of the first.

§Type Signature

forall A B. (Self A, Self B) -> Self A

§Type Parameters
  • 'a: The lifetime of the values.
  • A: The type of the value in the first context.
  • B: The type of the value in the second context.
§Parameters
  • fa: The first context.
  • fb: The second context.
§Returns

The first context.

§Examples
use fp_library::{
	brands::*,
	functions::*,
};

let x = Some(5);
let y = Some(10);
let z = apply_first::<OptionBrand, _, _>(x, y);
assert_eq!(z, Some(5));

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 ApplyFirst for CatListBrand

Source§

impl ApplyFirst for IdentityBrand

Source§

impl ApplyFirst for OptionBrand

Source§

impl ApplyFirst for ThunkBrand

Source§

impl ApplyFirst for Tuple1Brand

Source§

impl ApplyFirst for VecBrand

Source§

impl<A: 'static> ApplyFirst for TryThunkOkAppliedBrand<A>

§Type Parameters
  • A: The success type.
Source§

impl<DoneType: Clone + 'static> ApplyFirst for StepDoneAppliedBrand<DoneType>

§Type Parameters
  • DoneType: The done type.
Source§

impl<E: 'static> ApplyFirst for TryThunkErrAppliedBrand<E>

§Type Parameters
  • E: The error type.
Source§

impl<E: Clone + 'static> ApplyFirst for ResultErrAppliedBrand<E>

§Type Parameters
  • E: The error type.
Source§

impl<First: Clone + Semigroup + 'static> ApplyFirst for PairFirstAppliedBrand<First>

§Type Parameters
  • First: The type of the first value in the pair.
Source§

impl<First: Clone + Semigroup + 'static> ApplyFirst for Tuple2FirstAppliedBrand<First>

§Type Parameters
  • First: The type of the first value in the tuple.
Source§

impl<FunctionBrand: CloneableFn + 'static, A: 'static, B: 'static> ApplyFirst for BazaarListBrand<FunctionBrand, A, B>

§Type Parameters
  • FunctionBrand: The cloneable function brand.
  • A: The focus type.
  • B: The replacement type.
Source§

impl<LoopType: Clone + 'static> ApplyFirst for StepLoopAppliedBrand<LoopType>

§Type Parameters
  • LoopType: The loop type.
Source§

impl<R: 'static + Semigroup> ApplyFirst for ConstBrand<R>

§Type Parameters
  • R: The stored type.
Source§

impl<Second: Clone + Semigroup + 'static> ApplyFirst for PairSecondAppliedBrand<Second>

§Type Parameters
  • Second: The type of the second value in the pair.
Source§

impl<Second: Clone + Semigroup + 'static> ApplyFirst for Tuple2SecondAppliedBrand<Second>

§Type Parameters
  • Second: The type of the second value in the tuple.
Source§

impl<T: Clone + 'static> ApplyFirst for ResultOkAppliedBrand<T>

§Type Parameters
  • T: The success type.