content: # https://github.com/ericseppanen/cargo-cranky
  # cargo install cargo-cranky && cargo cranky
  
  error = [
    "clippy::all",
    "clippy::await_holding_lock",
    "clippy::bool_to_int_with_if",
    "clippy::char_lit_as_u8",
    "clippy::checked_conversions",
    "clippy::dbg_macro",
    "clippy::debug_assert_with_mut_call",
    "clippy::disallowed_methods",
    "clippy::disallowed_script_idents",
    "clippy::doc_link_with_quotes",
    "clippy::doc_markdown",
    "clippy::empty_enum",
    "clippy::enum_glob_use",
    "clippy::equatable_if_let",
    "clippy::exit",
    "clippy::expl_impl_clone_on_copy",
    "clippy::explicit_deref_methods",
    "clippy::explicit_into_iter_loop",
    "clippy::explicit_iter_loop",
    "clippy::fallible_impl_from",
    "clippy::filter_map_next",
    "clippy::flat_map_option",
    "clippy::float_cmp_const",
    "clippy::fn_params_excessive_bools",
    "clippy::fn_to_numeric_cast_any",
    "clippy::from_iter_instead_of_collect",
    "clippy::if_let_mutex",
    "clippy::implicit_clone",
    "clippy::imprecise_flops",
    "clippy::index_refutable_slice",
    "clippy::inefficient_to_string",
    "clippy::invalid_upcast_comparisons",
    "clippy::iter_not_returning_iterator",
    "clippy::iter_on_empty_collections",
    "clippy::iter_on_single_items",
    "clippy::large_digit_groups",
    "clippy::large_stack_arrays",
    "clippy::large_types_passed_by_value",
    "clippy::let_unit_value",
    "clippy::linkedlist",
    "clippy::lossy_float_literal",
    "clippy::macro_use_imports",
    "clippy::manual_assert",
    "clippy::manual_instant_elapsed",
    "clippy::manual_ok_or",
    "clippy::manual_string_new",
    "clippy::map_err_ignore",
    "clippy::map_flatten",
    "clippy::map_unwrap_or",
    "clippy::match_on_vec_items",
    "clippy::match_same_arms",
    "clippy::match_wild_err_arm",
    "clippy::match_wildcard_for_single_variants",
    "clippy::mem_forget",
    "clippy::mismatched_target_os",
    "clippy::mismatching_type_param_order",
    "clippy::missing_enforced_import_renames",
    # "clippy::missing_errors_doc",
    "clippy::missing_safety_doc",
    "clippy::mut_mut",
    "clippy::mutex_integer",
    "clippy::needless_borrow",
    "clippy::needless_continue",
    "clippy::needless_for_each",
    "clippy::needless_pass_by_value",
    "clippy::negative_feature_names",
    "clippy::nonstandard_macro_braces",
    "clippy::option_option",
    "clippy::path_buf_push_overwrite",
    "clippy::ptr_as_ptr",
    "clippy::rc_mutex",
    "clippy::ref_option_ref",
    "clippy::rest_pat_in_fully_bound_structs",
    "clippy::same_functions_in_if_condition",
    "clippy::semicolon_if_nothing_returned",
    "clippy::single_match_else",
    "clippy::str_to_string",
    "clippy::string_add_assign",
    "clippy::string_add",
    "clippy::string_lit_as_bytes",
    "clippy::string_to_string",
    "clippy::todo",
    "clippy::trailing_empty_array",
    "clippy::trait_duplication_in_bounds",
    "clippy::unimplemented",
    "clippy::unnecessary_wraps",
    "clippy::unnested_or_patterns",
    "clippy::unused_peekable",
    "clippy::unused_rounding",
    # "clippy::unused_self",
    "clippy::useless_transmute",
    "clippy::verbose_file_reads",
    "clippy::zero_sized_map_values",
    "elided_lifetimes_in_paths",
    "future_incompatible",
    "nonstandard_style",
    "rust_2018_idioms",
    "rust_2021_prelude_collisions",
    "rustdoc::missing_crate_level_docs",
    "semicolon_in_expressions_from_macros",
    "trivial_numeric_casts",
    "unused_extern_crates",
    "unused_import_braces",
    "unused_lifetimes",
  ]
  
  allow = [
    # TODO(emilk): enable more lints
    "clippy::cloned_instead_of_copied",
    "clippy::derive_partial_eq_without_eq",
    "clippy::type_complexity",
    "clippy::undocumented_unsafe_blocks",
    "trivial_casts",
    "unsafe_op_in_unsafe_fn",               # `unsafe_op_in_unsafe_fn` may become the default in future Rust versions: https://github.com/rust-lang/rust/issues/71668
    "unused_qualifications",
  ]
  
  