pub struct TGenericParameter {
pub parameter_name: Atom,
pub constraint: Box<TUnion>,
pub defining_entity: GenericParent,
pub intersection_types: Option<Vec<TAtomic>>,
}Expand description
Represents a generic type parameter (@template T of Bound), potentially with intersection constraints.
Fields§
§parameter_name: AtomThe name of the template parameter (e.g., T in @template T).
constraint: Box<TUnion>The upper bound or constraint (Bound in T of Bound), represented as a type union.
defining_entity: GenericParentThe scope (class-like or function-like) where this template parameter was defined.
intersection_types: Option<Vec<TAtomic>>Additional types intersected with this generic parameter (e.g., &Other in T&Other).
Contains boxed atomic types (TAtomic) because intersections can involve various types.
Implementations§
Source§impl TGenericParameter
impl TGenericParameter
Sourcepub fn new(
parameter_name: Atom,
constraint: Box<TUnion>,
defining_entity: GenericParent,
) -> Self
pub fn new( parameter_name: Atom, constraint: Box<TUnion>, defining_entity: GenericParent, ) -> Self
Creates new metadata for a generic parameter with its main bound. Initializes with no intersection types.
§Arguments
parameter_name: The name of the template parameter (e.g.,T).constraint: The primary bound (TUnion), boxed (e.g.,of SomeInterface).defining_entity: The scope (GenericParent) where it was defined.
Sourcepub const fn get_parameter_name(&self) -> Atom
pub const fn get_parameter_name(&self) -> Atom
Returns the name identifier of the template parameter.
Sourcepub fn get_constraint(&self) -> &TUnion
pub fn get_constraint(&self) -> &TUnion
Returns a reference to the main bound (as) type (TUnion).
Sourcepub const fn get_defining_entity(&self) -> GenericParent
pub const fn get_defining_entity(&self) -> GenericParent
Returns the defining entity (scope) of the template parameter.
pub fn is_constrained_as_numeric(&self) -> bool
pub fn is_constrained_as_mixed(&self) -> bool
pub fn is_constrained_as_vanilla_mixed(&self) -> bool
pub fn is_constrained_as_objecty(&self) -> bool
pub fn with_constraint(&self, constraint: TUnion) -> Self
pub fn without_intersection_types(&self) -> Self
Trait Implementations§
Source§impl Clone for TGenericParameter
impl Clone for TGenericParameter
Source§fn clone(&self) -> TGenericParameter
fn clone(&self) -> TGenericParameter
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TGenericParameter
impl Debug for TGenericParameter
Source§impl<'de> Deserialize<'de> for TGenericParameter
impl<'de> Deserialize<'de> for TGenericParameter
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Hash for TGenericParameter
impl Hash for TGenericParameter
Source§impl Ord for TGenericParameter
impl Ord for TGenericParameter
Source§fn cmp(&self, other: &TGenericParameter) -> Ordering
fn cmp(&self, other: &TGenericParameter) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for TGenericParameter
impl PartialEq for TGenericParameter
Source§impl PartialOrd for TGenericParameter
impl PartialOrd for TGenericParameter
Source§impl Serialize for TGenericParameter
impl Serialize for TGenericParameter
Source§impl TType for TGenericParameter
impl TType for TGenericParameter
Source§fn get_child_nodes(&self) -> Vec<TypeRef<'_>>
fn get_child_nodes(&self) -> Vec<TypeRef<'_>>
Source§fn can_be_intersected(&self) -> bool
fn can_be_intersected(&self) -> bool
&B&S).Source§fn get_intersection_types(&self) -> Option<&[TAtomic]>
fn get_intersection_types(&self) -> Option<&[TAtomic]>
&B&S), if any. Contains boxed atomic types.Source§fn get_intersection_types_mut(&mut self) -> Option<&mut Vec<TAtomic>>
fn get_intersection_types_mut(&mut self) -> Option<&mut Vec<TAtomic>>
&B&S), if any. Contains boxed atomic types.Source§fn has_intersection_types(&self) -> bool
fn has_intersection_types(&self) -> bool
Source§fn add_intersection_type(&mut self, intersection_type: TAtomic) -> bool
fn add_intersection_type(&mut self, intersection_type: TAtomic) -> bool
fn needs_population(&self) -> bool
fn is_expandable(&self) -> bool
Source§fn is_complex(&self) -> bool
fn is_complex(&self) -> bool
Source§fn get_id(&self) -> Atom
fn get_id(&self) -> Atom
fn get_pretty_id_with_indent(&self, _indent: usize) -> Atom
Source§fn get_all_child_nodes(&self) -> Vec<TypeRef<'_>>
fn get_all_child_nodes(&self) -> Vec<TypeRef<'_>>
fn get_pretty_id(&self) -> Atom
impl Eq for TGenericParameter
impl StructuralPartialEq for TGenericParameter
Auto Trait Implementations§
impl Freeze for TGenericParameter
impl RefUnwindSafe for TGenericParameter
impl Send for TGenericParameter
impl Sync for TGenericParameter
impl Unpin for TGenericParameter
impl UnwindSafe for TGenericParameter
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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
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>
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>
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> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);