pub struct MissingSpecForDomainType { /* private fields */ }Expand description
MissingSpecForDomainType rule
Detects struct/enum types in domain modules that lack corresponding Spec TypeAliases.
§Rule Code
RS001 (Ryo Spec)
§Detection
- Find struct/enum in
domain/,model/, or similar modules - Check if there’s a corresponding
*SpecTypeAlias - Report if missing
§Example Violation
ⓘ
// src/domain/task.rs
pub struct Task { ... }
// WARNING: No TaskSpec TypeAlias found§Fix
Generates AddSpec MutationSpec to create the TypeAlias.
Implementations§
Source§impl MissingSpecForDomainType
impl MissingSpecForDomainType
pub fn new() -> Self
Sourcepub fn with_patterns(patterns: Vec<String>) -> Self
pub fn with_patterns(patterns: Vec<String>) -> Self
Create with custom domain patterns
Sourcepub fn with_group(self, group: impl Into<String>) -> Self
pub fn with_group(self, group: impl Into<String>) -> Self
Set the default group name
Trait Implementations§
Source§impl Default for MissingSpecForDomainType
impl Default for MissingSpecForDomainType
Source§impl LintSuggest for MissingSpecForDomainType
impl LintSuggest for MissingSpecForDomainType
Source§fn default_severity(&self) -> LintSeverity
fn default_severity(&self) -> LintSeverity
Returns the default severity for this lint rule
Source§fn create_lint_opportunity(
&self,
id: OpportunityId,
targets: Vec<SymbolId>,
location: SuggestLocation,
message: impl Into<String>,
details: LintDetails,
) -> SuggestOpportunity
fn create_lint_opportunity( &self, id: OpportunityId, targets: Vec<SymbolId>, location: SuggestLocation, message: impl Into<String>, details: LintDetails, ) -> SuggestOpportunity
Helper to create a lint opportunity
Source§impl SpecSuggest for MissingSpecForDomainType
impl SpecSuggest for MissingSpecForDomainType
Source§fn spec_suffix(&self) -> &str
fn spec_suffix(&self) -> &str
Get the suffix pattern for identifying Spec TypeAliases (default: “Spec”)
Source§fn is_spec_alias(&self, name: &str) -> bool
fn is_spec_alias(&self, name: &str) -> bool
Check if a TypeAlias name looks like a Spec
Source§fn extract_base_type<'a>(&self, alias_name: &'a str) -> Option<&'a str>
fn extract_base_type<'a>(&self, alias_name: &'a str) -> Option<&'a str>
Extract the base type name from a Spec alias name
e.g., “TaskSpec” -> “Task”
Source§fn get_module_path(&self, path: &SymbolPath) -> Option<SymbolPath>
fn get_module_path(&self, path: &SymbolPath) -> Option<SymbolPath>
Get the module path for a symbol (parent of the symbol)
Source§impl Suggest for MissingSpecForDomainType
impl Suggest for MissingSpecForDomainType
Source§fn description(&self) -> &str
fn description(&self) -> &str
Human-readable description
Source§fn category(&self) -> SuggestCategory
fn category(&self) -> SuggestCategory
Category for filtering/grouping
Source§fn safety_level(&self) -> SafetyLevel
fn safety_level(&self) -> SafetyLevel
Safety level for auto-application decisions
Source§fn priority_weight(&self) -> f32
fn priority_weight(&self) -> f32
Priority weight for ranking (higher = more important)
Source§fn detect(
&self,
ctx: &AnalysisContext,
symbols: &[SymbolId],
) -> Vec<SuggestOpportunity>
fn detect( &self, ctx: &AnalysisContext, symbols: &[SymbolId], ) -> Vec<SuggestOpportunity>
Detect opportunities for the given symbols Read more
Source§fn to_mutation_specs(
&self,
ctx: &AnalysisContext,
opportunity: &SuggestOpportunity,
) -> SuggestResult<Vec<MutationSpec>>
fn to_mutation_specs( &self, ctx: &AnalysisContext, opportunity: &SuggestOpportunity, ) -> SuggestResult<Vec<MutationSpec>>
Convert a detected opportunity to executable MutationSpecs Read more
Source§fn rule_id(&self) -> Option<&str>
fn rule_id(&self) -> Option<&str>
Optional rule ID for pattern-based rules (e.g., “RL021”).
Returns None for non-pattern suggestions.
Source§fn target_scopes(&self) -> Vec<SymbolScope>
fn target_scopes(&self) -> Vec<SymbolScope>
Target scopes where this suggest applies. Read more
Source§fn accepts_params(&self) -> bool
fn accepts_params(&self) -> bool
Whether this suggestion accepts external parameters. Read more
Source§fn param_schema(&self) -> Vec<ParamDef>
fn param_schema(&self) -> Vec<ParamDef>
Schema of accepted parameters (for LLM consumption). Read more
Source§fn detect_with_params(
&self,
ctx: &AnalysisContext,
symbols: &[SymbolId],
_params: &SuggestParams,
) -> Vec<SuggestOpportunity>
fn detect_with_params( &self, ctx: &AnalysisContext, symbols: &[SymbolId], _params: &SuggestParams, ) -> Vec<SuggestOpportunity>
Detect opportunities with external parameters. Read more
Auto Trait Implementations§
impl Freeze for MissingSpecForDomainType
impl RefUnwindSafe for MissingSpecForDomainType
impl Send for MissingSpecForDomainType
impl Sync for MissingSpecForDomainType
impl Unpin for MissingSpecForDomainType
impl UnsafeUnpin for MissingSpecForDomainType
impl UnwindSafe for MissingSpecForDomainType
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> 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 more