[package] authors = [ "Embark ", "rerun.io ", ] categories = ["game-engines"] description = "An opinionated game math library built on top the excellent glam" edition = "2021" homepage = "https://github.com/rerun-io/re_math" include = ["LICENSE-APACHE", "LICENSE-MIT", "**/*.rs", "Cargo.toml"] keywords = ["gamedev", "math"] license = "MIT OR Apache-2.0" name = "re_math" publish = true readme = "README.md" repository = "https://github.com/rerun-io/re_math" rust-version = "1.76" version = "0.20.0" [package.metadata.docs.rs] all-features = true targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"] [features] default = [] bytemuck = ["dep:bytemuck", "glam/bytemuck"] libm = ["glam/libm"] serde = ["dep:serde", "glam/serde"] [dependencies] glam = { version = "0.28", default-features = false, features = ["std"] } bytemuck = { version = "1.9", optional = true } serde = { version = "1", default-features = false, optional = true, features = [ "derive", ] } [lints] workspace = true [workspace.lints.rust] unsafe_code = "deny" elided_lifetimes_in_paths = "warn" future_incompatible = "warn" nonstandard_style = "warn" rust_2018_idioms = "warn" rust_2021_prelude_collisions = "warn" semicolon_in_expressions_from_macros = "warn" trivial_numeric_casts = "warn" unsafe_op_in_unsafe_fn = "warn" # `unsafe_op_in_unsafe_fn` may become the default in future Rust versions: https://github.com/rust-lang/rust/issues/71668 unused_extern_crates = "warn" unused_import_braces = "warn" unused_lifetimes = "warn" trivial_casts = "allow" unused_qualifications = "allow" [workspace.lints.rustdoc] all = "warn" missing_crate_level_docs = "warn" # See also clippy.toml [workspace.lints.clippy] as_ptr_cast_mut = "warn" await_holding_lock = "warn" bool_to_int_with_if = "warn" char_lit_as_u8 = "warn" checked_conversions = "warn" clear_with_drain = "warn" cloned_instead_of_copied = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "warn" derive_partial_eq_without_eq = "warn" disallowed_macros = "warn" # See clippy.toml disallowed_methods = "warn" # See clippy.toml disallowed_names = "warn" # See clippy.toml disallowed_script_idents = "warn" # See clippy.toml disallowed_types = "warn" # See clippy.toml doc_link_with_quotes = "warn" doc_markdown = "warn" empty_enum = "warn" enum_glob_use = "warn" equatable_if_let = "warn" exit = "warn" expl_impl_clone_on_copy = "warn" explicit_deref_methods = "warn" explicit_into_iter_loop = "warn" explicit_iter_loop = "warn" fallible_impl_from = "warn" filter_map_next = "warn" flat_map_option = "warn" float_cmp_const = "warn" fn_params_excessive_bools = "warn" fn_to_numeric_cast_any = "warn" from_iter_instead_of_collect = "warn" get_unwrap = "warn" if_let_mutex = "warn" implicit_clone = "warn" imprecise_flops = "warn" index_refutable_slice = "warn" inefficient_to_string = "warn" infinite_loop = "warn" into_iter_without_iter = "warn" invalid_upcast_comparisons = "warn" iter_not_returning_iterator = "warn" iter_on_empty_collections = "warn" iter_on_single_items = "warn" iter_over_hash_type = "warn" iter_without_into_iter = "warn" large_digit_groups = "warn" large_include_file = "warn" large_stack_arrays = "warn" large_stack_frames = "warn" large_types_passed_by_value = "warn" let_underscore_untyped = "warn" let_unit_value = "warn" linkedlist = "warn" lossy_float_literal = "warn" macro_use_imports = "warn" manual_assert = "warn" manual_clamp = "warn" manual_instant_elapsed = "warn" manual_let_else = "warn" manual_ok_or = "warn" manual_string_new = "warn" map_err_ignore = "warn" map_flatten = "warn" map_unwrap_or = "warn" match_on_vec_items = "warn" match_same_arms = "warn" match_wild_err_arm = "warn" match_wildcard_for_single_variants = "warn" mem_forget = "warn" mismatched_target_os = "warn" mismatching_type_param_order = "warn" missing_assert_message = "warn" missing_enforced_import_renames = "warn" missing_errors_doc = "warn" missing_safety_doc = "warn" mut_mut = "warn" mutex_integer = "warn" needless_borrow = "warn" needless_continue = "warn" needless_for_each = "warn" needless_pass_by_ref_mut = "warn" needless_pass_by_value = "warn" negative_feature_names = "warn" nonstandard_macro_braces = "warn" option_option = "warn" path_buf_push_overwrite = "warn" ptr_as_ptr = "warn" ptr_cast_constness = "warn" pub_without_shorthand = "warn" rc_mutex = "warn" readonly_write_lock = "warn" redundant_type_annotations = "warn" ref_option_ref = "warn" rest_pat_in_fully_bound_structs = "warn" same_functions_in_if_condition = "warn" semicolon_if_nothing_returned = "warn" should_panic_without_expect = "warn" significant_drop_tightening = "warn" single_match_else = "warn" str_to_string = "warn" string_add = "warn" string_add_assign = "warn" string_lit_as_bytes = "warn" string_lit_chars_any = "warn" string_to_string = "warn" suspicious_command_arg_space = "warn" suspicious_xor_used_as_pow = "warn" todo = "warn" too_many_lines = "warn" trailing_empty_array = "warn" trait_duplication_in_bounds = "warn" tuple_array_conversions = "warn" unchecked_duration_subtraction = "warn" undocumented_unsafe_blocks = "warn" unimplemented = "warn" uninhabited_references = "warn" uninlined_format_args = "warn" unnecessary_box_returns = "warn" unnecessary_safety_doc = "warn" unnecessary_struct_initialization = "warn" unnecessary_wraps = "warn" unnested_or_patterns = "warn" unused_peekable = "warn" unused_rounding = "warn" unused_self = "warn" unwrap_used = "warn" use_self = "warn" useless_transmute = "warn" verbose_file_reads = "warn" wildcard_dependencies = "warn" wildcard_imports = "warn" zero_sized_map_values = "warn" manual_range_contains = "allow" # this one is just worse imho ref_patterns = "allow" # It's nice to avoid ref pattern, but there are some situations that are hard (impossible?) to express without.