[package] name = "pisserror" description = "A golden rip-off of thiserror" authors = ["Barrett Ray "] version = "0.3.0-rc.2" edition = "2021" readme = "README.md" license = "MIT" repository = "https://github.com/onkoe/pisserror" categories = ["rust-patterns", "development-tools"] keywords = ["error", "derive-error", "thiserror", "error-handling"] [dependencies.pisserror_macros] path = "macros/" version = "0.3.0-rc.2" [workspace] members = ["macros"] [features] default = ["std"] std = ["pisserror_macros/std"] # an insane amount of lints from yours truly [lints.clippy] # allow_attributes = "warn" as_ptr_cast_mut = "warn" as_underscore = "warn" borrow_as_ptr = "warn" cargo_common_metadata = "deny" cast_lossless = "warn" cast_possible_truncation = "warn" cast_possible_wrap = "warn" cast_ptr_alignment = "warn" cast_sign_loss = "warn" cfg_not_test = "warn" checked_conversions = "deny" clear_with_drain = "warn" clone_on_ref_ptr = "warn" cloned_instead_of_copied = "warn" collection_is_never_read = "warn" copy_iterator = "deny" create_dir = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "deny" default_trait_access = "warn" default_union_representation = "deny" deref_by_slicing = "warn" doc_link_with_quotes = "deny" empty_enum = "deny" empty_enum_variants_with_brackets = "deny" enum_glob_use = "deny" equatable_if_let = "warn" error_impl_error = "deny" exhaustive_enums = "warn" exit = "deny" expl_impl_clone_on_copy = "deny" explicit_deref_methods = "warn" explicit_iter_loop = "warn" field_scoped_visibility_modifiers = "deny" filetype_is_file = "deny" filter_map_next = "warn" flat_map_option = "deny" float_cmp = "warn" float_cmp_const = "warn" fn_params_excessive_bools = "deny" fn_to_numeric_cast_any = "deny" format_push_string = "warn" future_not_send = "warn" host_endian_bytes = "warn" if_not_else = "warn" if_then_some_else_none = "warn" ignored_unit_patterns = "deny" impl_trait_in_params = "warn" implicit_clone = "deny" imprecise_flops = "warn" inconsistent_struct_constructor = "deny" indexing_slicing = "warn" inefficient_to_string = "warn" infinite_loop = "deny" inline_asm_x86_att_syntax = "deny" integer_division = "warn" into_iter_without_iter = "deny" invalid_upcast_comparisons = "deny" items_after_statements = "warn" iter_filter_is_ok = "warn" iter_filter_is_some = "warn" iter_not_returning_iterator = "deny" iter_on_empty_collections = "deny" iter_on_single_items = "warn" iter_over_hash_type = "warn" iter_with_drain = "warn" iter_without_into_iter = "deny" large_digit_groups = "deny" large_futures = "warn" large_stack_arrays = "deny" large_stack_frames = "deny" large_types_passed_by_value = "warn" let_underscore_must_use = "warn" let_underscore_untyped = "warn" linkedlist = "deny" lossy_float_literal = "deny" macro_use_imports = "deny" manual_assert = "deny" manual_c_str_literals = "warn" manual_instant_elapsed = "deny" manual_is_variant_and = "warn" manual_let_else = "deny" manual_ok_or = "deny" manual_string_new = "warn" many_single_char_names = "warn" map_err_ignore = "warn" map_unwrap_or = "warn" match_bool = "warn" match_on_vec_items = "warn" match_same_arms = "warn" match_wildcard_for_single_variants = "warn" maybe_infinite_iter = "warn" mem_forget = "warn" mismatching_type_param_order = "warn" missing_assert_message = "warn" missing_asserts_for_indexing = "warn" missing_const_for_fn = "warn" # missing_docs_in_private_items = "deny" missing_errors_doc = "warn" missing_inline_in_public_items = "warn" missing_panics_doc = "warn" modulo_arithmetic = "deny" # never noticed Rust's behavior here before. better to stop it before i do... mut_mut = "warn" mutex_atomic = "warn" mutex_integer = "warn" needless_bitwise_bool = "warn" needless_collect = "warn" needless_continue = "warn" needless_pass_by_ref_mut = "warn" needless_pass_by_value = "warn" needless_raw_string_hashes = "warn" needless_raw_strings = "warn" negative_feature_names = "deny" no_mangle_with_rust_abi = "warn" non_send_fields_in_send_ty = "deny" option_as_ref_cloned = "warn" option_option = "warn" or_fun_call = "warn" partial_pub_fields = "warn" path_buf_push_overwrite = "deny" pattern_type_mismatch = "warn" print_stderr = "deny" print_stdout = "deny" ptr_as_ptr = "deny" ptr_cast_constness = "deny" pub_underscore_fields = "warn" pub_without_shorthand = "deny" range_minus_one = "deny" range_plus_one = "deny" rc_buffer = "warn" rc_mutex = "warn" read_zero_byte_vec = "warn" redundant_clone = "warn" redundant_closure_for_method_calls = "warn" redundant_else = "warn" redundant_feature_names = "warn" ref_as_ptr = "deny" ref_binding_to_reference = "warn" ref_option_ref = "warn" renamed_function_params = "deny" rest_pat_in_fully_bound_structs = "warn" return_self_not_must_use = "warn" same_functions_in_if_condition = "warn" same_name_method = "warn" self_named_module_files = "deny" semicolon_if_nothing_returned = "warn" set_contains_or_insert = "warn" shadow_reuse = "warn" shadow_same = "warn" should_panic_without_expect = "warn" similar_names = "warn" single_char_lifetime_names = "deny" # yeah baby, i'm counter-culture/goth or something single_char_pattern = "warn" single_match_else = "warn" stable_sort_primitive = "warn" std_instead_of_alloc = "warn" std_instead_of_core = "warn" str_split_at_newline = "warn" string_add = "warn" string_add_assign = "warn" string_lit_chars_any = "warn" string_slice = "deny" # nope! let's just avoid this string_to_string = "deny" struct_excessive_bools = "warn" struct_field_names = "warn" suboptimal_flops = "warn" suspicious_operation_groupings = "warn" # this one would've saved me 2+ hours in the past suspicious_xor_used_as_pow = "deny" tests_outside_test_module = "deny" todo = "warn" too_many_lines = "warn" trailing_empty_array = "deny" trait_duplication_in_bounds = "warn" transmute_ptr_to_ptr = "deny" transmute_undefined_repr = "deny" trivial_regex = "warn" trivially_copy_pass_by_ref = "deny" try_err = "warn" tuple_array_conversions = "warn" type_repetition_in_bounds = "deny" unchecked_duration_subtraction = "deny" undocumented_unsafe_blocks = "deny" unicode_not_nfc = "warn" unimplemented = "warn" uninlined_format_args = "warn" unnecessary_box_returns = "warn" unnecessary_join = "warn" unnecessary_safety_comment = "warn" unnecessary_safety_doc = "warn" unnecessary_self_imports = "deny" unnecessary_struct_initialization = "warn" unneeded_field_pattern = "warn" unnested_or_patterns = "warn" unreadable_literal = "deny" unsafe_derive_deserialize = "warn" unseparated_literal_suffix = "warn" unused_async = "warn" unused_peekable = "warn" unused_rounding = "deny" unused_self = "warn" # note: this can break object safety of traits use_debug = "warn" use_self = "deny" used_underscore_binding = "deny" useless_let_if_seq = "warn" verbose_bit_mask = "deny" verbose_file_reads = "warn" while_float = "warn" wildcard_dependencies = "deny" zero_sized_map_values = "warn" [lints.rust] absolute_paths_not_starting_with_crate = "warn" elided_lifetimes_in_paths = "warn" explicit_outlives_requirements = "warn" ffi_unwind_calls = "deny" # fuzzy_provenance_casts = "deny" keyword_idents_2024 = "deny" let_underscore_drop = "warn" # lossy_provenance_casts = "deny" macro_use_extern_crate = "deny" meta_variable_misuse = "warn" missing_abi = "deny" missing_copy_implementations = "warn" # missing_docs = "deny" missing_debug_implementations = "warn" missing_unsafe_on_extern = "deny" non_ascii_idents = "deny" non_local_definitions = "deny" # you absolutely didn't mean to do this redundant_lifetimes = "warn" single_use_lifetimes = "warn" trivial_numeric_casts = "deny" unit_bindings = "warn" unnameable_types = "deny" unreachable_pub = "warn" unsafe_op_in_unsafe_fn = "warn" # i don't like this one, but it's planned to be warn in the 2024 edition unstable_features = "warn" unused_import_braces = "deny" unused_lifetimes = "warn" unused_macro_rules = "warn" variant_size_differences = "deny"