[package] name = "peniko" version = "0.2.0" license = "Apache-2.0 OR MIT" edition = "2021" description = "Primitive types for styling vector graphics" keywords = ["graphics", "vector", "style"] categories = ["graphics"] repository = "https://github.com/linebender/peniko" readme = "README.md" # We support from Rust 1.70 so that CI uses the sparse protocol. # Keep in sync with RUST_MIN_VER in .github/workflows/ci.yml and with the relevant README.md files. # and with the MSRV in the `Unreleased` section of CHANGELOG.md. rust-version = "1.70" [features] default = ["std"] std = ["kurbo/std"] libm = ["kurbo/libm"] mint = ["kurbo/mint"] serde = ["smallvec/serde", "kurbo/serde", "dep:serde_bytes", "dep:serde"] [package.metadata.docs.rs] features = ["serde"] [dependencies] # NOTE: Make sure to keep this in sync with the version badge in README.md kurbo = { version = "0.11.1", default-features = false } smallvec = "1.13.2" [dependencies.serde] version = "1.0.210" optional = true default-features = false features = ["alloc", "derive"] [dependencies.serde_bytes] version = "0.11.15" optional = true default-features = false features = ["alloc"] [lints] rust.unsafe_code = "forbid" rust.keyword_idents_2024 = "forbid" rust.non_ascii_idents = "forbid" rust.non_local_definitions = "forbid" rust.unsafe_op_in_unsafe_fn = "forbid" rust.elided_lifetimes_in_paths = "warn" rust.let_underscore_drop = "warn" rust.missing_debug_implementations = "warn" rust.missing_docs = "warn" rust.single_use_lifetimes = "warn" rust.trivial_numeric_casts = "warn" rust.unexpected_cfgs = "warn" rust.unit_bindings = "warn" rust.unnameable_types = "warn" rust.unreachable_pub = "warn" rust.unused_import_braces = "warn" rust.unused_lifetimes = "warn" rust.unused_macro_rules = "warn" rust.unused_qualifications = "warn" rust.variant_size_differences = "warn" clippy.allow_attributes_without_reason = "warn" clippy.collection_is_never_read = "warn" clippy.dbg_macro = "warn" clippy.debug_assert_with_mut_call = "warn" clippy.doc_markdown = "warn" clippy.fn_to_numeric_cast_any = "forbid" clippy.infinite_loop = "warn" clippy.large_include_file = "warn" clippy.large_stack_arrays = "warn" clippy.match_same_arms = "warn" clippy.mismatching_type_param_order = "warn" clippy.missing_assert_message = "warn" clippy.missing_errors_doc = "warn" clippy.missing_fields_in_debug = "warn" clippy.missing_panics_doc = "warn" clippy.partial_pub_fields = "warn" clippy.return_self_not_must_use = "warn" clippy.same_functions_in_if_condition = "warn" clippy.semicolon_if_nothing_returned = "warn" clippy.shadow_unrelated = "warn" clippy.should_panic_without_expect = "warn" clippy.todo = "warn" clippy.unseparated_literal_suffix = "warn" clippy.use_self = "warn" clippy.wildcard_imports = "warn" # This catches duplicated dependencies in the tree, which we don't have much control over # We should use cargo deny for this, anyway clippy.cargo = { level = "warn", priority = -1 } # Lints which we set in `lib.rs`, instead of at a package level. # False positives with example targets - https://github.com/rust-lang/rust/issues/57274 # rust.unused_crate_dependencies = "warn" # Examples often do want to print # clippy.print_stdout = "warn" # clippy.print_stderr = "warn" ## Explicit per-crate exceptions, should be manually checked occasionally. # There are lots of conversion to u8 color field, which in degenerate cases might not work # properly, but generally are fine. # E.g. `multiply_alpha` sets the alpha to `0` for a negative provided `alpha` # clippy.cast_possible_truncation = "warn" # Most enums are correctly exhaustive, as this is a vocabulary crate. # clippy.exhaustive_enums = "warn"