tinymist_std::typst::foundations

Trait AlternativeFold

pub trait AlternativeFold {
    // Required method
    fn fold_or(self, outer: Self) -> Self;
}
Expand description

A variant of fold for foldable optional (Option<T>) values where an inner None value isn’t respected (contrary to Option’s usual Fold implementation, with which folding with an inner None always returns None). Instead, when either of the Option objects is None, the other one is necessarily returned by fold_or. Normal folding still occurs when both values are Some, using T’s Fold implementation.

This is useful when None in a particular context means “unspecified” rather than “absent”, in which case a specified value (Some) is chosen over an unspecified one (None), while two specified values are folded together.

Required Methods§

fn fold_or(self, outer: Self) -> Self

Attempts to fold this inner value with an outer value. However, if either value is None, returns the other one instead of folding.

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.

Implementations on Foreign Types§

§

impl<T> AlternativeFold for Option<T>
where T: Fold,

§

fn fold_or(self, outer: Option<T>) -> Option<T>

Implementors§