[package]
edition = "2024"
rust-version = "1.88"
name = "brepkit-io"
version = "3.2.21"
build = false
exclude = ["tests/data/"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Multi-format B-Rep data exchange for brepkit (STEP, IGES, STL, 3MF, OBJ, PLY, glTF)"
homepage = "https://github.com/andymai/brepkit"
readme = "README.md"
keywords = [
"cad",
"brep",
"geometry",
"solid-modeling",
"nurbs",
]
categories = [
"graphics",
"mathematics",
"science",
]
license = "AGPL-3.0-only"
repository = "https://github.com/andymai/brepkit"
[lib]
name = "brepkit_io"
path = "src/lib.rs"
[[example]]
name = "arena_roundtrip_orientation"
path = "examples/arena_roundtrip_orientation.rs"
[[example]]
name = "audit_bin"
path = "examples/audit_bin.rs"
[[example]]
name = "coincident_fuse_loop"
path = "examples/coincident_fuse_loop.rs"
[[example]]
name = "dump_solid"
path = "examples/dump_solid.rs"
[[example]]
name = "fuse_orient"
path = "examples/fuse_orient.rs"
[[example]]
name = "orient_scan"
path = "examples/orient_scan.rs"
[[example]]
name = "profile_export_tess"
path = "examples/profile_export_tess.rs"
[[example]]
name = "region_probe"
path = "examples/region_probe.rs"
[[example]]
name = "replay_cut_capture"
path = "examples/replay_cut_capture.rs"
[[example]]
name = "replay_fillet_variable"
path = "examples/replay_fillet_variable.rs"
[[example]]
name = "replay_kumiko_goma"
path = "examples/replay_kumiko_goma.rs"
[[example]]
name = "replay_pair"
path = "examples/replay_pair.rs"
[[example]]
name = "slots_density"
path = "examples/slots_density.rs"
[[example]]
name = "step_solid_report"
path = "examples/step_solid_report.rs"
[[test]]
name = "compart_nonmanifold_inmem"
path = "tests/compart_nonmanifold_inmem.rs"
[[test]]
name = "compartscoop_fuse_inmem"
path = "tests/compartscoop_fuse_inmem.rs"
[[test]]
name = "cross_format"
path = "tests/cross_format.rs"
[[test]]
name = "cut_reversed_tool_faces_inmem"
path = "tests/cut_reversed_tool_faces_inmem.rs"
[[test]]
name = "deepened_wall_opening_inmem"
path = "tests/deepened_wall_opening_inmem.rs"
[[test]]
name = "dovetail_a1corner_holecut_inmem"
path = "tests/dovetail_a1corner_holecut_inmem.rs"
[[test]]
name = "dovetail_a1corner_nubfuse_inmem"
path = "tests/dovetail_a1corner_nubfuse_inmem.rs"
[[test]]
name = "dovetail_cornerclip_intersect_inmem"
path = "tests/dovetail_cornerclip_intersect_inmem.rs"
[[test]]
name = "dovetail_dblcorner_nub_inmem"
path = "tests/dovetail_dblcorner_nub_inmem.rs"
[[test]]
name = "dovetail_groove_cut_inmem"
path = "tests/dovetail_groove_cut_inmem.rs"
[[test]]
name = "dovetail_interior_identity_intersect_inmem"
path = "tests/dovetail_interior_identity_intersect_inmem.rs"
[[test]]
name = "dovetail_relief_cut_inmem"
path = "tests/dovetail_relief_cut_inmem.rs"
[[test]]
name = "dovetail_tongue_groove_cut_inmem"
path = "tests/dovetail_tongue_groove_cut_inmem.rs"
[[test]]
name = "fitoffset_groove_mouth_inmem"
path = "tests/fitoffset_groove_mouth_inmem.rs"
[[test]]
name = "fitoffset_nub_chain_inmem"
path = "tests/fitoffset_nub_chain_inmem.rs"
[[test]]
name = "fracplate_seam_pocket_inmem"
path = "tests/fracplate_seam_pocket_inmem.rs"
[[test]]
name = "fracwidth_corner_crescent_inmem"
path = "tests/fracwidth_corner_crescent_inmem.rs"
[[test]]
name = "goma_wall_band_cut_inmem"
path = "tests/goma_wall_band_cut_inmem.rs"
[[test]]
name = "gridfinity_cavitycut_inmem"
path = "tests/gridfinity_cavitycut_inmem.rs"
[[test]]
name = "gridfinity_honeycomb_cut_inmem"
path = "tests/gridfinity_honeycomb_cut_inmem.rs"
[[test]]
name = "gridfinity_lipfuse_dividers_inmem"
path = "tests/gridfinity_lipfuse_dividers_inmem.rs"
[[test]]
name = "gridfinity_wallcut_seq_inmem"
path = "tests/gridfinity_wallcut_seq_inmem.rs"
[[test]]
name = "gscoop_pinch_cut_inmem"
path = "tests/gscoop_pinch_cut_inmem.rs"
[[test]]
name = "halfsockets_clipcut_inmem"
path = "tests/halfsockets_clipcut_inmem.rs"
[[test]]
name = "halfsockets_export_inmem"
path = "tests/halfsockets_export_inmem.rs"
[[test]]
name = "halfsockets_lipfuse_inmem"
path = "tests/halfsockets_lipfuse_inmem.rs"
[[test]]
name = "halfsockets_socketfuse_inmem"
path = "tests/halfsockets_socketfuse_inmem.rs"
[[test]]
name = "intwidth_tangency_inmem"
path = "tests/intwidth_tangency_inmem.rs"
[[test]]
name = "kumiko_corner_wedge_inmem"
path = "tests/kumiko_corner_wedge_inmem.rs"
[[test]]
name = "kumiko_lattice_fuse_inmem"
path = "tests/kumiko_lattice_fuse_inmem.rs"
[[test]]
name = "labelbracket_fuse_inmem"
path = "tests/labelbracket_fuse_inmem.rs"
[[test]]
name = "labeltab_attach_inmem"
path = "tests/labeltab_attach_inmem.rs"
[[test]]
name = "lidpost_fuse_inmem"
path = "tests/lidpost_fuse_inmem.rs"
[[test]]
name = "lipband_cut_inmem"
path = "tests/lipband_cut_inmem.rs"
[[test]]
name = "lipcorner_tangent_inmem"
path = "tests/lipcorner_tangent_inmem.rs"
[[test]]
name = "lipfuse_boundary_retrace_inmem"
path = "tests/lipfuse_boundary_retrace_inmem.rs"
[[test]]
name = "lipfuse_fixture"
path = "tests/lipfuse_fixture.rs"
[[test]]
name = "lite_pad_graze_fuse_inmem"
path = "tests/lite_pad_graze_fuse_inmem.rs"
[[test]]
name = "lship_lipcut_inmem"
path = "tests/lship_lipcut_inmem.rs"
[[test]]
name = "lship_lipfuse_inmem"
path = "tests/lship_lipfuse_inmem.rs"
[[test]]
name = "midcell_lipfuse_inmem"
path = "tests/midcell_lipfuse_inmem.rs"
[[test]]
name = "mitsukude_panel_cut_inmem"
path = "tests/mitsukude_panel_cut_inmem.rs"
[[test]]
name = "mixed_socket_tess_inmem"
path = "tests/mixed_socket_tess_inmem.rs"
[[test]]
name = "multicavity_cut"
path = "tests/multicavity_cut.rs"
[[test]]
name = "oring_nested_holes"
path = "tests/oring_nested_holes.rs"
[[test]]
name = "oshape_socket_fuse_inmem"
path = "tests/oshape_socket_fuse_inmem.rs"
[[test]]
name = "quarter_socket_loft_inmem"
path = "tests/quarter_socket_loft_inmem.rs"
[[test]]
name = "readme_sample"
path = "tests/readme_sample.rs"
[[test]]
name = "relief_meshbool_fallback_inmem"
path = "tests/relief_meshbool_fallback_inmem.rs"
[[test]]
name = "scoop_corner_cylinder_fuse"
path = "tests/scoop_corner_cylinder_fuse.rs"
[[test]]
name = "scoop_fillet_variable_inmem"
path = "tests/scoop_fillet_variable_inmem.rs"
[[test]]
name = "scoop_fix_inmem"
path = "tests/scoop_fix_inmem.rs"
[[test]]
name = "scoop_fuse_order_independence"
path = "tests/scoop_fuse_order_independence.rs"
[[test]]
name = "scooplabel_ef_margin_inmem"
path = "tests/scooplabel_ef_margin_inmem.rs"
[[test]]
name = "slots_lipcone_cut_inmem"
path = "tests/slots_lipcone_cut_inmem.rs"
[[test]]
name = "slotted_nolip_fuse_inmem"
path = "tests/slotted_nolip_fuse_inmem.rs"
[[test]]
name = "snapclip_deepened_notch_inmem"
path = "tests/snapclip_deepened_notch_inmem.rs"
[[test]]
name = "snapclip_export_corner_inmem"
path = "tests/snapclip_export_corner_inmem.rs"
[[test]]
name = "snapclip_slot_cut_inmem"
path = "tests/snapclip_slot_cut_inmem.rs"
[[test]]
name = "socket_assembly_fuse_inmem"
path = "tests/socket_assembly_fuse_inmem.rs"
[[test]]
name = "socket_junction_disc_inmem"
path = "tests/socket_junction_disc_inmem.rs"
[[test]]
name = "tessellation_parity_inmem"
path = "tests/tessellation_parity_inmem.rs"
[[test]]
name = "thickwall_sharp_cavity_fuse_inmem"
path = "tests/thickwall_sharp_cavity_fuse_inmem.rs"
[[test]]
name = "topsocket_cut_inmem"
path = "tests/topsocket_cut_inmem.rs"
[[test]]
name = "tship_lipcut_inmem"
path = "tests/tship_lipcut_inmem.rs"
[[test]]
name = "wallcut_fixture"
path = "tests/wallcut_fixture.rs"
[dependencies.brepkit-math]
version = "3.2.21"
features = ["serde"]
[dependencies.brepkit-operations]
version = "3.2.21"
[dependencies.brepkit-topology]
version = "3.2.21"
[dependencies.quick-xml]
version = "0.41"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.zip]
version = "8"
features = ["deflate"]
default-features = false
[dev-dependencies.brepkit-algo]
version = "3.2.21"
[dev-dependencies.brepkit-topology]
version = "3.2.21"
features = ["test-utils"]
[dev-dependencies.log]
version = "0.4"
[dev-dependencies.proptest]
version = "1"
[lints.clippy]
bool_to_int_with_if = "allow"
branches_sharing_code = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
dbg_macro = "deny"
derive_partial_eq_without_eq = "allow"
doc_markdown = "allow"
expect_used = "warn"
if_same_then_else = "allow"
imprecise_flops = "allow"
iter_over_hash_type = "allow"
manual_let_else = "allow"
manual_slice_fill = "allow"
many_single_char_names = "allow"
map_unwrap_or = "allow"
match_same_arms = "allow"
missing_const_for_fn = "allow"
module_name_repetitions = "allow"
needless_pass_by_value = "allow"
needless_range_loop = "allow"
option_if_let_else = "allow"
panic = "deny"
print_stderr = "deny"
print_stdout = "deny"
redundant_else = "allow"
similar_names = "allow"
suboptimal_flops = "allow"
suspicious_operation_groupings = "allow"
todo = "warn"
too_many_lines = "allow"
tuple_array_conversions = "allow"
uninlined_format_args = "allow"
unwrap_used = "deny"
used_underscore_binding = "allow"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "warn"
unsafe_code = "deny"