#[repr(u8)]pub enum RainbowType {
BestOf = 0,
WorstOf = 1,
}Expand description
Describes the type of rainbow option based on how multiple assets are combined.
Rainbow options are multi-asset options where the payoff depends on the relative performance of two or more underlying assets.
§Examples
use option_type::RainbowType;
let rainbow = RainbowType::default();
assert_eq!(rainbow, RainbowType::BestOf);Variants§
BestOf = 0
Option on the maximum of multiple assets. Call payoff: max(max(S1, S2, …, Sn) - K, 0) Put payoff: max(K - max(S1, S2, …, Sn), 0)
WorstOf = 1
Option on the minimum of multiple assets. Call payoff: max(min(S1, S2, …, Sn) - K, 0) Put payoff: max(K - min(S1, S2, …, Sn), 0)
Implementations§
Source§impl RainbowType
impl RainbowType
Sourcepub const fn is_best_of(&self) -> bool
pub const fn is_best_of(&self) -> bool
Returns true if this is a BestOf rainbow option.
Sourcepub const fn is_worst_of(&self) -> bool
pub const fn is_worst_of(&self) -> bool
Returns true if this is a WorstOf rainbow option.
Trait Implementations§
Source§impl Clone for RainbowType
impl Clone for RainbowType
Source§fn clone(&self) -> RainbowType
fn clone(&self) -> RainbowType
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for RainbowType
Source§impl Debug for RainbowType
impl Debug for RainbowType
Source§impl Default for RainbowType
impl Default for RainbowType
Source§fn default() -> RainbowType
fn default() -> RainbowType
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for RainbowType
impl<'de> Deserialize<'de> for RainbowType
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<RainbowType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RainbowType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for RainbowType
Source§impl Hash for RainbowType
impl Hash for RainbowType
Source§impl PartialEq for RainbowType
impl PartialEq for RainbowType
Source§impl Serialize for RainbowType
impl Serialize for RainbowType
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for RainbowType
Auto Trait Implementations§
impl Freeze for RainbowType
impl RefUnwindSafe for RainbowType
impl Send for RainbowType
impl Sync for RainbowType
impl Unpin for RainbowType
impl UnsafeUnpin for RainbowType
impl UnwindSafe for RainbowType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PartialSchema for Twhere
T: ComposeSchema + ?Sized,
impl<T> PartialSchema for Twhere
T: ComposeSchema + ?Sized,
Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.