pub struct TCallableSignature {
pub is_pure: bool,
pub is_closure: bool,
pub parameters: Vec<TCallableParameter>,
pub return_type: Option<Box<TUnion>>,
pub closure_location: Option<(FileId, Position)>,
pub source: Option<FunctionLikeIdentifier>,
}Expand description
Represents the detailed signature of a PHP callable type.
This includes parameter types and flags, return type, and purity information,
often derived from @param callable(ParamType...): ReturnType docblock tags
or inferred from usage.
Fields§
§is_pure: booltrue if the callable is known to be pure (no side effects), often from @psalm-pure.
is_closure: booltrue if this signature specifically represents a closure instance.
May overlap with closure_position being Some.
parameters: Vec<TCallableParameter>Ordered list of parameters expected by the callable signature.
return_type: Option<Box<TUnion>>The return type of the callable, if specified. None implies mixed or unknown.
closure_location: Option<(FileId, Position)>The source code starting position if this signature originated from a specific closure definition.
None if it represents a general callable type not tied to a specific closure literal.
source: Option<FunctionLikeIdentifier>The source of the callable, if it is an alias or reference to another function-like construct.
Implementations§
Source§impl TCallableSignature
impl TCallableSignature
Sourcepub fn new(is_pure: bool, is_closure: bool) -> Self
pub fn new(is_pure: bool, is_closure: bool) -> Self
Creates a new CallableSignature with the specified purity and closure status.
pub fn mixed(is_closure: bool) -> Self
Sourcepub fn get_parameters(&self) -> &[TCallableParameter]
pub fn get_parameters(&self) -> &[TCallableParameter]
Returns a slice of the callable parameters.
Sourcepub fn get_parameters_mut(&mut self) -> &mut [TCallableParameter]
pub fn get_parameters_mut(&mut self) -> &mut [TCallableParameter]
Returns a mutable slice of the callable parameters.
Sourcepub fn get_return_type(&self) -> Option<&TUnion>
pub fn get_return_type(&self) -> Option<&TUnion>
Returns a reference to the return type (TUnion), if specified.
Sourcepub fn get_return_type_mut(&mut self) -> Option<&mut TUnion>
pub fn get_return_type_mut(&mut self) -> Option<&mut TUnion>
Returns a mutable reference to the return type (TUnion), if specified.
Sourcepub fn get_closure_position(&self) -> Option<(FileId, Position)>
pub fn get_closure_position(&self) -> Option<(FileId, Position)>
Returns the closure’s starting position, if this signature represents a specific closure literal.
Sourcepub const fn is_closure(&self) -> bool
pub const fn is_closure(&self) -> bool
Checks if this signature specifically represents a closure.
Sourcepub const fn has_source(&self) -> bool
pub const fn has_source(&self) -> bool
Checks if the callable has a source, indicating it is an alias or reference to another function-like construct.
Sourcepub fn get_source(&self) -> Option<FunctionLikeIdentifier>
pub fn get_source(&self) -> Option<FunctionLikeIdentifier>
Returns the source of the callable, if it is an alias or reference to another function-like construct.
Sourcepub fn clone_as_closure(&self) -> Self
pub fn clone_as_closure(&self) -> Self
Clones the signature as a closure, setting is_closure to true.
Sourcepub fn with_pure(self, is_pure: bool) -> Self
pub fn with_pure(self, is_pure: bool) -> Self
Returns a new instance with is_pure set to the given value.
Sourcepub fn with_parameters(self, parameters: Vec<TCallableParameter>) -> Self
pub fn with_parameters(self, parameters: Vec<TCallableParameter>) -> Self
Returns a new instance with the given parameters.
Sourcepub fn with_return_type(self, return_type: Option<Box<TUnion>>) -> Self
pub fn with_return_type(self, return_type: Option<Box<TUnion>>) -> Self
Returns a new instance with the return type set.
Sourcepub fn with_closure_location(
self,
closure_position: Option<(FileId, Position)>,
) -> Self
pub fn with_closure_location( self, closure_position: Option<(FileId, Position)>, ) -> Self
Returns a new instance with the closure position set.
Sourcepub fn with_source(self, source: Option<FunctionLikeIdentifier>) -> Self
pub fn with_source(self, source: Option<FunctionLikeIdentifier>) -> Self
Returns a new instance with the source set.
Trait Implementations§
Source§impl Clone for TCallableSignature
impl Clone for TCallableSignature
Source§fn clone(&self) -> TCallableSignature
fn clone(&self) -> TCallableSignature
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TCallableSignature
impl Debug for TCallableSignature
Source§impl<'de> Deserialize<'de> for TCallableSignature
impl<'de> Deserialize<'de> for TCallableSignature
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 TCallableSignature
impl Hash for TCallableSignature
Source§impl Ord for TCallableSignature
impl Ord for TCallableSignature
Source§fn cmp(&self, other: &TCallableSignature) -> Ordering
fn cmp(&self, other: &TCallableSignature) -> 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 TCallableSignature
impl PartialEq for TCallableSignature
Source§impl PartialOrd for TCallableSignature
impl PartialOrd for TCallableSignature
Source§impl Serialize for TCallableSignature
impl Serialize for TCallableSignature
impl Eq for TCallableSignature
impl StructuralPartialEq for TCallableSignature
Auto Trait Implementations§
impl Freeze for TCallableSignature
impl RefUnwindSafe for TCallableSignature
impl Send for TCallableSignature
impl Sync for TCallableSignature
impl Unpin for TCallableSignature
impl UnwindSafe for TCallableSignature
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);