pub struct PluginRegistry { /* private fields */ }Implementations§
Source§impl PluginRegistry
impl PluginRegistry
pub fn new() -> Self
pub fn with_library_providers() -> Self
pub fn register_function_provider<P: FunctionReturnTypeProvider + 'static>( &mut self, provider: P, )
pub fn register_method_provider<P: MethodReturnTypeProvider + 'static>( &mut self, provider: P, )
pub fn register_program_hook<H: ProgramHook + 'static>(&mut self, hook: H)
pub fn register_statement_hook<H: StatementHook + 'static>(&mut self, hook: H)
pub fn register_expression_hook<H: ExpressionHook + 'static>(&mut self, hook: H)
pub fn register_function_call_hook<H: FunctionCallHook + 'static>( &mut self, hook: H, )
pub fn register_method_call_hook<H: MethodCallHook + 'static>( &mut self, hook: H, )
pub fn register_static_method_call_hook<H: StaticMethodCallHook + 'static>( &mut self, hook: H, )
pub fn register_nullsafe_method_call_hook<H: NullSafeMethodCallHook + 'static>( &mut self, hook: H, )
pub fn register_class_hook<H: ClassDeclarationHook + 'static>( &mut self, hook: H, )
pub fn register_interface_hook<H: InterfaceDeclarationHook + 'static>( &mut self, hook: H, )
pub fn register_trait_hook<H: TraitDeclarationHook + 'static>( &mut self, hook: H, )
pub fn register_enum_hook<H: EnumDeclarationHook + 'static>(&mut self, hook: H)
pub fn register_function_decl_hook<H: FunctionDeclarationHook + 'static>( &mut self, hook: H, )
pub fn register_property_initialization_provider<P: PropertyInitializationProvider + 'static>( &mut self, provider: P, )
pub fn register_issue_filter_hook<H: IssueFilterHook + 'static>( &mut self, hook: H, )
pub fn register_function_assertion_provider<P: FunctionAssertionProvider + 'static>( &mut self, provider: P, )
pub fn register_method_assertion_provider<P: MethodAssertionProvider + 'static>( &mut self, provider: P, )
pub fn register_expression_throw_provider<P: ExpressionThrowTypeProvider + 'static>( &mut self, provider: P, )
pub fn register_function_throw_provider<P: FunctionThrowTypeProvider + 'static>( &mut self, provider: P, )
pub fn register_method_throw_provider<P: MethodThrowTypeProvider + 'static>( &mut self, provider: P, )
pub fn has_program_hooks(&self) -> bool
pub fn has_statement_hooks(&self) -> bool
pub fn has_expression_hooks(&self) -> bool
pub fn has_function_call_hooks(&self) -> bool
pub fn has_method_call_hooks(&self) -> bool
pub fn has_static_method_call_hooks(&self) -> bool
pub fn has_nullsafe_method_call_hooks(&self) -> bool
pub fn has_class_hooks(&self) -> bool
pub fn has_interface_hooks(&self) -> bool
pub fn has_trait_hooks(&self) -> bool
pub fn has_enum_hooks(&self) -> bool
pub fn has_function_decl_hooks(&self) -> bool
pub fn has_property_initialization_providers(&self) -> bool
pub fn has_issue_filter_hooks(&self) -> bool
pub fn has_function_assertion_providers(&self) -> bool
pub fn has_method_assertion_providers(&self) -> bool
pub fn has_expression_throw_providers(&self) -> bool
pub fn has_function_throw_providers(&self) -> bool
pub fn has_method_throw_providers(&self) -> bool
pub fn before_program( &self, file: &File, program: &Program<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<HookAction>
pub fn after_program( &self, file: &File, program: &Program<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn before_statement( &self, stmt: &Statement<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<HookAction>
pub fn after_statement( &self, stmt: &Statement<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn before_expression( &self, expr: &Expression<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<ExpressionHookResult>
pub fn after_expression( &self, expr: &Expression<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn before_function_call( &self, call: &FunctionCall<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<ExpressionHookResult>
pub fn after_function_call( &self, call: &FunctionCall<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn before_method_call( &self, call: &MethodCall<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<ExpressionHookResult>
pub fn after_method_call( &self, call: &MethodCall<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn before_static_method_call( &self, call: &StaticMethodCall<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<ExpressionHookResult>
pub fn after_static_method_call( &self, call: &StaticMethodCall<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn before_nullsafe_method_call( &self, call: &NullSafeMethodCall<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<ExpressionHookResult>
pub fn after_nullsafe_method_call( &self, call: &NullSafeMethodCall<'_>, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_enter_class( &self, class: &Class<'_>, metadata: &ClassLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_leave_class( &self, class: &Class<'_>, metadata: &ClassLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_enter_interface( &self, interface: &Interface<'_>, metadata: &ClassLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_leave_interface( &self, interface: &Interface<'_>, metadata: &ClassLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_enter_trait( &self, trait_: &Trait<'_>, metadata: &ClassLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_leave_trait( &self, trait_: &Trait<'_>, metadata: &ClassLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_enter_enum( &self, enum_: &Enum<'_>, metadata: &ClassLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_leave_enum( &self, enum_: &Enum<'_>, metadata: &ClassLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_enter_function( &self, function: &Function<'_>, metadata: &FunctionLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn on_leave_function( &self, function: &Function<'_>, metadata: &FunctionLikeMetadata, context: &mut HookContext<'_, '_>, ) -> PluginResult<()>
pub fn get_function_like_return_type<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, function_like: &FunctionLikeIdentifier, invocation: &Invocation<'ctx, '_, '_>, ) -> Option<ProviderResult>
pub fn get_function_return_type<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, function_name: &str, invocation: &Invocation<'ctx, '_, '_>, ) -> ProviderResult
pub fn get_method_return_type<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, class_name: &str, method_name: &str, invocation: &Invocation<'ctx, '_, '_>, ) -> ProviderResult
pub fn function_provider_count(&self) -> usize
pub fn method_provider_count(&self) -> usize
Sourcepub fn is_property_initialized(
&self,
class_metadata: &ClassLikeMetadata,
property_metadata: &PropertyMetadata,
) -> bool
pub fn is_property_initialized( &self, class_metadata: &ClassLikeMetadata, property_metadata: &PropertyMetadata, ) -> bool
Check if a property should be considered initialized by any registered provider.
Returns true if any provider considers the property initialized.
pub fn get_function_like_assertions<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, function_like: &FunctionLikeIdentifier, invocation: &Invocation<'ctx, '_, '_>, ) -> Option<InvocationAssertions>
Sourcepub fn get_function_assertions<'ctx>(
&self,
codebase: &'ctx CodebaseMetadata,
block_context: &BlockContext<'ctx>,
artifacts: &AnalysisArtifacts,
function_name: &str,
invocation: &Invocation<'ctx, '_, '_>,
) -> Option<InvocationAssertions>
pub fn get_function_assertions<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, function_name: &str, invocation: &Invocation<'ctx, '_, '_>, ) -> Option<InvocationAssertions>
Get assertions for a function invocation from registered providers.
Sourcepub fn get_method_assertions<'ctx>(
&self,
codebase: &'ctx CodebaseMetadata,
block_context: &BlockContext<'ctx>,
artifacts: &AnalysisArtifacts,
class_name: &str,
method_name: &str,
invocation: &Invocation<'ctx, '_, '_>,
) -> Option<InvocationAssertions>
pub fn get_method_assertions<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, class_name: &str, method_name: &str, invocation: &Invocation<'ctx, '_, '_>, ) -> Option<InvocationAssertions>
Get assertions for a method invocation from registered providers.
Sourcepub fn get_expression_thrown_exceptions<'ctx>(
&self,
codebase: &'ctx CodebaseMetadata,
block_context: &BlockContext<'ctx>,
artifacts: &AnalysisArtifacts,
expression: &Expression<'_>,
) -> AtomSet
pub fn get_expression_thrown_exceptions<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, expression: &Expression<'_>, ) -> AtomSet
Get thrown exception class names for an expression from registered providers.
Sourcepub fn get_function_thrown_exceptions<'ctx>(
&self,
codebase: &'ctx CodebaseMetadata,
block_context: &BlockContext<'ctx>,
artifacts: &AnalysisArtifacts,
function_name: &str,
invocation: &Invocation<'ctx, '_, '_>,
) -> AtomSet
pub fn get_function_thrown_exceptions<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, function_name: &str, invocation: &Invocation<'ctx, '_, '_>, ) -> AtomSet
Get thrown exception class names for a function invocation from registered providers.
Sourcepub fn get_method_thrown_exceptions<'ctx>(
&self,
codebase: &'ctx CodebaseMetadata,
block_context: &BlockContext<'ctx>,
artifacts: &AnalysisArtifacts,
class_name: &str,
method_name: &str,
invocation: &Invocation<'ctx, '_, '_>,
) -> AtomSet
pub fn get_method_thrown_exceptions<'ctx>( &self, codebase: &'ctx CodebaseMetadata, block_context: &BlockContext<'ctx>, artifacts: &AnalysisArtifacts, class_name: &str, method_name: &str, invocation: &Invocation<'ctx, '_, '_>, ) -> AtomSet
Get thrown exception class names for a method invocation from registered providers.
Sourcepub fn filter_issues(
&self,
file: &File,
issues: IssueCollection,
) -> IssueCollection
pub fn filter_issues( &self, file: &File, issues: IssueCollection, ) -> IssueCollection
Filter issues through all registered issue filter hooks.
Returns a new IssueCollection with filtered issues.
Trait Implementations§
Source§impl Debug for PluginRegistry
impl Debug for PluginRegistry
Source§impl Default for PluginRegistry
impl Default for PluginRegistry
Source§fn default() -> PluginRegistry
fn default() -> PluginRegistry
Auto Trait Implementations§
impl Freeze for PluginRegistry
impl !RefUnwindSafe for PluginRegistry
impl Send for PluginRegistry
impl Sync for PluginRegistry
impl Unpin for PluginRegistry
impl !UnwindSafe for PluginRegistry
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> 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);