omnicoach 0.3.0

Lightweight, high-signal static analysis and command linter for Python and Rust
//! The code rule registry.
architecture_component!(CodeLintRules);

use crate::code_lint::contract::AnyCodeRule;

pub mod abbreviated_name;
pub mod annotated_type_in_docstring;
pub mod associated_item_after_method;
pub mod bare_multiline_string;
pub mod callee_before_caller;
pub mod concrete_collection_attribute;
pub mod concrete_collection_parameter;
pub mod concrete_collection_return;
pub mod constructor_after_method;
pub mod copied_base_docstring;
pub mod deferral_docstring;
pub mod duplicated_test_setup;
pub mod dynamic_attribute_access;
pub mod environment_variable_in_function;
pub mod error_log_in_except;
pub mod escaped_multiline_string;
pub mod fake_without_protocol;
pub mod field_after_method;
pub mod identical_positional_types;
pub mod inline_public_attribute_annotation;
pub mod logic_in_tests;
pub mod mock_call_assertion;
pub mod mock_in_tests;
pub mod multi_phase_test;
pub mod mutable_collection_attribute;
pub mod mutable_collection_parameter;
pub mod mutable_collection_return;
pub mod mutable_dataclass;
pub mod mutable_module_constant;
pub mod nested_class;
pub mod nested_function;
pub mod non_boolean_predicate;
pub mod nullable_collection_return;
pub mod packed_assertion;
pub mod partial_override_docstring;
pub mod positional_tuple_return;
pub mod primitive_duration;
pub mod private_before_public;
pub mod quote_wrapped_placeholder;
pub mod repeated_index_access;
pub mod repeated_literal;
pub mod single_letter_name;
pub mod sleep_in_tests;
pub mod specific_collection_parameter;
pub mod statement_after_main_guard;
pub mod suppressed_exception;
pub mod test_calls_test;
pub mod too_many_assertions;
pub mod type_cast;
pub mod type_suffixed_name;
pub mod uncolocated_helper;
pub mod undocumented_nontrivial_function;
pub mod undocumented_public_attribute;
pub mod unexplained_optional_argument;
pub mod unexplained_optional_return;
pub mod unexplained_parameter;
pub mod unexplained_return;
pub mod uninherited_protocol;
pub mod unmatched_logger_placeholder;
pub mod unslotted_dataclass;
pub mod unstructured_task;
pub mod verb_led_property_docstring;
pub mod verb_led_returns_section;
pub mod yield_loop_in_tests;

/// Every registered code rule.
pub const CODE_RULES: &[&dyn AnyCodeRule] = &[
    &unstructured_task::RULE,
    &sleep_in_tests::SLEEP_IN_TESTS,
    &sleep_in_tests::ZERO_SLEEP_IN_TESTS,
    &yield_loop_in_tests::RULE,
    &too_many_assertions::RULE,
    &packed_assertion::RULE,
    &logic_in_tests::RULE,
    &multi_phase_test::RULE,
    &duplicated_test_setup::RULE,
    &test_calls_test::RULE,
    &mock_in_tests::RULE,
    &mock_call_assertion::RULE,
    &fake_without_protocol::RULE,
    &error_log_in_except::RULE,
    &suppressed_exception::RULE,
    &type_cast::RULE,
    &dynamic_attribute_access::RULE,
    &nested_function::RULE,
    &nested_class::RULE,
    &single_letter_name::RULE,
    &abbreviated_name::RULE,
    &type_suffixed_name::RULE,
    &primitive_duration::RULE,
    &identical_positional_types::RULE,
    &environment_variable_in_function::RULE,
    &mutable_dataclass::RULE,
    &unslotted_dataclass::RULE,
    &bare_multiline_string::RULE,
    &escaped_multiline_string::RULE,
    &repeated_index_access::RULE,
    &concrete_collection_parameter::RULE,
    &concrete_collection_return::RULE,
    &concrete_collection_attribute::RULE,
    &mutable_collection_parameter::RULE,
    &mutable_collection_return::RULE,
    &mutable_collection_attribute::RULE,
    &specific_collection_parameter::RULE,
    &nullable_collection_return::RULE,
    &repeated_literal::RULE,
    &mutable_module_constant::RULE,
    &inline_public_attribute_annotation::RULE,
    &constructor_after_method::RULE,
    &uncolocated_helper::RULE,
    &private_before_public::RULE,
    &callee_before_caller::RULE,
    &field_after_method::RULE,
    &associated_item_after_method::RULE,
    &statement_after_main_guard::RULE,
    &unmatched_logger_placeholder::RULE,
    &quote_wrapped_placeholder::RULE,
    &verb_led_returns_section::RULE,
    &verb_led_property_docstring::RULE,
    &undocumented_public_attribute::RULE,
    &annotated_type_in_docstring::RULE,
    &unexplained_optional_argument::RULE,
    &unexplained_optional_return::RULE,
    &deferral_docstring::RULE,
    &copied_base_docstring::RULE,
    &partial_override_docstring::RULE,
    &undocumented_nontrivial_function::RULE,
    &unexplained_parameter::RULE,
    &unexplained_return::RULE,
    &positional_tuple_return::RULE,
    &non_boolean_predicate::RULE,
    &uninherited_protocol::RULE,
];