#[non_exhaustive]pub struct PropertyHookMetadata {
pub name: Atom,
pub span: Span,
pub flags: MetadataFlags,
pub parameter: Option<FunctionLikeParameterMetadata>,
pub returns_by_ref: bool,
pub is_abstract: bool,
pub attributes: Vec<AttributeMetadata>,
pub return_type_metadata: Option<TypeMetadata>,
pub has_docblock: bool,
pub issues: Vec<Issue>,
}Expand description
Metadata for a property hook (get or set).
PHP 8.4 introduced property hooks, which allow defining custom get/set behavior for properties. This struct stores the metadata for a single hook.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: AtomThe hook name (“get” or “set”).
span: SpanSpan of the hook declaration.
flags: MetadataFlagsHook modifiers (final, etc.).
parameter: Option<FunctionLikeParameterMetadata>For set hooks: the parameter (explicit or implicit $value). None for get hooks.
returns_by_ref: boolWhether the hook returns by reference (&get).
is_abstract: boolWhether this is an abstract hook (no body, just semicolon).
attributes: Vec<AttributeMetadata>Attributes on the hook.
return_type_metadata: Option<TypeMetadata>Return type from @return docblock (for get hooks).
has_docblock: boolWhether this hook has a docblock comment.
issues: Vec<Issue>Issues from parsing the docblock.
Implementations§
Source§impl PropertyHookMetadata
impl PropertyHookMetadata
Sourcepub fn new(name: Atom, span: Span) -> Self
pub fn new(name: Atom, span: Span) -> Self
Creates a new PropertyHookMetadata with the given name and span.
Sourcepub fn with_flags(self, flags: MetadataFlags) -> Self
pub fn with_flags(self, flags: MetadataFlags) -> Self
Sets the flags for this hook.
Sourcepub fn with_parameter(
self,
parameter: Option<FunctionLikeParameterMetadata>,
) -> Self
pub fn with_parameter( self, parameter: Option<FunctionLikeParameterMetadata>, ) -> Self
Sets the parameter for this hook (for set hooks).
Sourcepub fn with_returns_by_ref(self, returns_by_ref: bool) -> Self
pub fn with_returns_by_ref(self, returns_by_ref: bool) -> Self
Sets whether the hook returns by reference.
Sourcepub fn with_is_abstract(self, is_abstract: bool) -> Self
pub fn with_is_abstract(self, is_abstract: bool) -> Self
Sets whether this is an abstract hook.
Sourcepub fn with_attributes(self, attributes: Vec<AttributeMetadata>) -> Self
pub fn with_attributes(self, attributes: Vec<AttributeMetadata>) -> Self
Sets the attributes for this hook.
Sourcepub fn with_return_type_metadata(
self,
return_type_metadata: Option<TypeMetadata>,
) -> Self
pub fn with_return_type_metadata( self, return_type_metadata: Option<TypeMetadata>, ) -> Self
Sets the return type metadata from docblock (for get hooks).
Sourcepub fn with_has_docblock(self, has_docblock: bool) -> Self
pub fn with_has_docblock(self, has_docblock: bool) -> Self
Sets whether this hook has a docblock.
Sourcepub fn with_issues(self, issues: Vec<Issue>) -> Self
pub fn with_issues(self, issues: Vec<Issue>) -> Self
Sets the issues from parsing the docblock.
Sourcepub fn take_issues(&mut self) -> Vec<Issue>
pub fn take_issues(&mut self) -> Vec<Issue>
Takes the issues, leaving an empty vector.
Trait Implementations§
Source§impl Clone for PropertyHookMetadata
impl Clone for PropertyHookMetadata
Source§fn clone(&self) -> PropertyHookMetadata
fn clone(&self) -> PropertyHookMetadata
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PropertyHookMetadata
impl Debug for PropertyHookMetadata
Source§impl<'de> Deserialize<'de> for PropertyHookMetadata
impl<'de> Deserialize<'de> for PropertyHookMetadata
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 PartialEq for PropertyHookMetadata
impl PartialEq for PropertyHookMetadata
Source§impl Serialize for PropertyHookMetadata
impl Serialize for PropertyHookMetadata
impl Eq for PropertyHookMetadata
impl StructuralPartialEq for PropertyHookMetadata
Auto Trait Implementations§
impl Freeze for PropertyHookMetadata
impl RefUnwindSafe for PropertyHookMetadata
impl Send for PropertyHookMetadata
impl Sync for PropertyHookMetadata
impl Unpin for PropertyHookMetadata
impl UnwindSafe for PropertyHookMetadata
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> 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);