From 3811448313b0a991ed843dc85e713fe313c0a01f Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Tue, 23 Jul 2024 16:11:33 +0200 Subject: [PATCH 1/7] fix cargo +nightly build --- src/utils/hashmap.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/utils/hashmap.rs b/src/utils/hashmap.rs index 364ae380..a5d02a3d 100644 --- a/src/utils/hashmap.rs +++ b/src/utils/hashmap.rs @@ -6,6 +6,8 @@ use indexmap::IndexMap as StdHashMap; #[cfg(all(not(feature = "enhanced-determinism"), feature = "serde-serialize"))] use std::collections::HashMap as StdHashMap; +use std::mem::size_of; + /// Serializes only the capacity of a hash-map instead of its actual content. #[cfg(feature = "serde-serialize")] pub fn serialize_hashmap_capacity( @@ -84,20 +86,20 @@ impl std::hash::Hasher for FxHasher32 { fn write(&mut self, mut bytes: &[u8]) { let read_u32 = |bytes: &[u8]| u32::from_ne_bytes(bytes[..4].try_into().unwrap()); let mut hash = FxHasher32 { hash: self.hash }; - assert!(std::mem::size_of::() <= 8); - while bytes.len() >= std::mem::size_of::() { + assert!(size_of::() <= 8); + while bytes.len() >= size_of::() { hash.add_to_hash(read_u32(bytes)); - bytes = &bytes[std::mem::size_of::()..]; + bytes = &bytes[size_of::()..]; } - if (std::mem::size_of::() > 4) && (bytes.len() >= 4) { + if (size_of::() > 4) && (bytes.len() >= 4) { hash.add_to_hash(u32::from_ne_bytes(bytes[..4].try_into().unwrap())); bytes = &bytes[4..]; } - if (std::mem::size_of::() > 2) && bytes.len() >= 2 { + if (size_of::() > 2) && bytes.len() >= 2 { hash.add_to_hash(u16::from_ne_bytes(bytes[..2].try_into().unwrap()) as u32); bytes = &bytes[2..]; } - if (std::mem::size_of::() > 1) && !bytes.is_empty() { + if (size_of::() > 1) && !bytes.is_empty() { hash.add_to_hash(bytes[0] as u32); } self.hash = hash.hash; From 3bb2c064907f14a09fc0a19c7f5ffae417dd109d Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Tue, 23 Jul 2024 14:51:10 +0200 Subject: [PATCH 2/7] explicit examples --- crates/parry2d-f64/Cargo.toml | 113 ++++++++++++++++++++++++++++++- crates/parry2d/Cargo.toml | 115 ++++++++++++++++++++++++++++++-- crates/parry3d-f64/Cargo.toml | 121 ++++++++++++++++++++++++++++++++- crates/parry3d/Cargo.toml | 122 +++++++++++++++++++++++++++++++++- publish.sh | 8 +++ write_examples.sh | 23 +++++++ 6 files changed, 491 insertions(+), 11 deletions(-) create mode 100644 write_examples.sh diff --git a/crates/parry2d-f64/Cargo.toml b/crates/parry2d-f64/Cargo.toml index 293d84b7..0ab90f95 100644 --- a/crates/parry2d-f64/Cargo.toml +++ b/crates/parry2d-f64/Cargo.toml @@ -19,11 +19,28 @@ maintenance = { status = "actively-developed" } [features] default = ["required-features", "std"] required-features = ["dim2", "f64"] -std = ["nalgebra/std", "slab", "rustc-hash", "simba/std", "arrayvec/std", "spade", "thiserror"] +std = [ + "nalgebra/std", + "slab", + "rustc-hash", + "simba/std", + "arrayvec/std", + "spade", + "thiserror", +] dim2 = [] f64 = [] -serde-serialize = ["serde", "nalgebra/serde-serialize", "arrayvec/serde", "bitflags/serde"] -rkyv-serialize = ["rkyv/validation", "nalgebra/rkyv-serialize", "simba/rkyv-serialize"] +serde-serialize = [ + "serde", + "nalgebra/serde-serialize", + "arrayvec/serde", + "bitflags/serde", +] +rkyv-serialize = [ + "rkyv/validation", + "nalgebra/rkyv-serialize", + "simba/rkyv-serialize", +] bytemuck-serialize = ["bytemuck", "nalgebra/convert-bytemuck"] simd-stable = ["simba/wide", "simd-is-enabled"] simd-nightly = ["simba/portable_simd", "simd-is-enabled"] @@ -68,3 +85,93 @@ simba = { version = "0.9", default-features = false } oorandom = "11" ptree = "0.4.0" rand = { version = "0.8" } + +[package.metadata.docs.rs] +rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"] +all-features = true +cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] + +[[example]] +name = "aabb2d.rs" +path = "examples/aabb2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "ball2d.rs" +path = "examples/ball2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "bounding_sphere2d.rs" +path = "examples/bounding_sphere2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "contact_query2d.rs" +path = "examples/contact_query2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex2d.rs" +path = "examples/convex2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex_hull2d.rs" +path = "examples/convex_hull2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex_try_new2d.rs" +path = "examples/convex_try_new2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "cuboid2d.rs" +path = "examples/cuboid2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "distance_query2d.rs" +path = "examples/distance_query2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "plane2d.rs" +path = "examples/plane2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "point_in_poly2d.rs" +path = "examples/point_in_poly2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "polygons_intersection2d.rs" +path = "examples/polygons_intersection2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "polyline2d.rs" +path = "examples/polyline2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "proximity_query2d.rs" +path = "examples/proximity_query2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "solid_point_query2d.rs" +path = "examples/solid_point_query2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "solid_ray_cast2d.rs" +path = "examples/solid_ray_cast2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "time_of_impact_query2d.rs" +path = "examples/time_of_impact_query2d.rs.rs" +doc-scrape-examples = true diff --git a/crates/parry2d/Cargo.toml b/crates/parry2d/Cargo.toml index d5e2cd52..39138118 100644 --- a/crates/parry2d/Cargo.toml +++ b/crates/parry2d/Cargo.toml @@ -19,11 +19,28 @@ maintenance = { status = "actively-developed" } [features] default = ["required-features", "std"] required-features = ["dim2", "f32"] -std = ["nalgebra/std", "slab", "rustc-hash", "simba/std", "arrayvec/std", "spade", "thiserror"] +std = [ + "nalgebra/std", + "slab", + "rustc-hash", + "simba/std", + "arrayvec/std", + "spade", + "thiserror", +] dim2 = [] f32 = [] -serde-serialize = ["serde", "nalgebra/serde-serialize", "arrayvec/serde", "bitflags/serde"] -rkyv-serialize = ["rkyv/validation", "nalgebra/rkyv-serialize", "simba/rkyv-serialize"] +serde-serialize = [ + "serde", + "nalgebra/serde-serialize", + "arrayvec/serde", + "bitflags/serde", +] +rkyv-serialize = [ + "rkyv/validation", + "nalgebra/rkyv-serialize", + "simba/rkyv-serialize", +] bytemuck-serialize = ["bytemuck", "nalgebra/convert-bytemuck"] simd-stable = ["simba/wide", "simd-is-enabled"] simd-nightly = ["simba/portable_simd", "simd-is-enabled"] @@ -68,4 +85,94 @@ simba = { version = "0.9", default-features = false } oorandom = "11" ptree = "0.4.0" rand = { version = "0.8" } -macroquad = "0.4" \ No newline at end of file +macroquad = "0.4" + +[package.metadata.docs.rs] +rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"] +all-features = true +cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] + +[[example]] +name = "aabb2d.rs" +path = "examples/aabb2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "ball2d.rs" +path = "examples/ball2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "bounding_sphere2d.rs" +path = "examples/bounding_sphere2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "contact_query2d.rs" +path = "examples/contact_query2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex2d.rs" +path = "examples/convex2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex_hull2d.rs" +path = "examples/convex_hull2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex_try_new2d.rs" +path = "examples/convex_try_new2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "cuboid2d.rs" +path = "examples/cuboid2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "distance_query2d.rs" +path = "examples/distance_query2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "plane2d.rs" +path = "examples/plane2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "point_in_poly2d.rs" +path = "examples/point_in_poly2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "polygons_intersection2d.rs" +path = "examples/polygons_intersection2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "polyline2d.rs" +path = "examples/polyline2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "proximity_query2d.rs" +path = "examples/proximity_query2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "solid_point_query2d.rs" +path = "examples/solid_point_query2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "solid_ray_cast2d.rs" +path = "examples/solid_ray_cast2d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "time_of_impact_query2d.rs" +path = "examples/time_of_impact_query2d.rs.rs" +doc-scrape-examples = true diff --git a/crates/parry3d-f64/Cargo.toml b/crates/parry3d-f64/Cargo.toml index 5d469892..bf653315 100644 --- a/crates/parry3d-f64/Cargo.toml +++ b/crates/parry3d-f64/Cargo.toml @@ -19,11 +19,23 @@ maintenance = { status = "actively-developed" } [features] default = ["required-features", "std"] required-features = ["dim3", "f64"] -std = ["nalgebra/std", "slab", "rustc-hash", "simba/std", "arrayvec/std", "spade", "thiserror"] +std = [ + "nalgebra/std", + "slab", + "rustc-hash", + "simba/std", + "arrayvec/std", + "spade", + "thiserror", +] dim3 = [] f64 = [] serde-serialize = ["serde", "nalgebra/serde-serialize", "bitflags/serde"] -rkyv-serialize = ["rkyv/validation", "nalgebra/rkyv-serialize", "simba/rkyv-serialize"] +rkyv-serialize = [ + "rkyv/validation", + "nalgebra/rkyv-serialize", + "simba/rkyv-serialize", +] bytemuck-serialize = ["bytemuck", "nalgebra/convert-bytemuck"] simd-stable = ["simba/wide", "simd-is-enabled"] simd-nightly = ["simba/portable_simd", "simd-is-enabled"] @@ -71,3 +83,108 @@ thiserror = { version = "1", optional = true } oorandom = "11" ptree = "0.4.0" rand = { version = "0.8" } + +[package.metadata.docs.rs] +rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"] +all-features = true +cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] + +[[example]] +name = "aabb3d.rs" +path = "examples/aabb3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "ball3d.rs" +path = "examples/ball3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "bounding_sphere3d.rs" +path = "examples/bounding_sphere3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "capsule.rs" +path = "examples/capsule.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "cone.rs" +path = "examples/cone.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "contact_query3d.rs" +path = "examples/contact_query3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex3d.rs" +path = "examples/convex3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex_hull3d.rs" +path = "examples/convex_hull3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex_try_new3d.rs" +path = "examples/convex_try_new3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "cuboid3d.rs" +path = "examples/cuboid3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "cylinder.rs" +path = "examples/cylinder.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "distance_query3d.rs" +path = "examples/distance_query3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "getting_started.rs" +path = "examples/getting_started.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "mesh3d.rs" +path = "examples/mesh3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "plane3d.rs" +path = "examples/plane3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "polyline3d.rs" +path = "examples/polyline3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "proximity_query3d.rs" +path = "examples/proximity_query3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "solid_point_query3d.rs" +path = "examples/solid_point_query3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "solid_ray_cast3d.rs" +path = "examples/solid_ray_cast3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "time_of_impact_query3d.rs" +path = "examples/time_of_impact_query3d.rs.rs" +doc-scrape-examples = true diff --git a/crates/parry3d/Cargo.toml b/crates/parry3d/Cargo.toml index 97dd9648..9d951ba7 100644 --- a/crates/parry3d/Cargo.toml +++ b/crates/parry3d/Cargo.toml @@ -19,11 +19,23 @@ maintenance = { status = "actively-developed" } [features] default = ["required-features", "std"] required-features = ["dim3", "f32"] -std = ["nalgebra/std", "slab", "rustc-hash", "simba/std", "arrayvec/std", "spade", "thiserror"] +std = [ + "nalgebra/std", + "slab", + "rustc-hash", + "simba/std", + "arrayvec/std", + "spade", + "thiserror", +] dim3 = [] f32 = [] serde-serialize = ["serde", "nalgebra/serde-serialize", "bitflags/serde"] -rkyv-serialize = ["rkyv/validation", "nalgebra/rkyv-serialize", "simba/rkyv-serialize"] +rkyv-serialize = [ + "rkyv/validation", + "nalgebra/rkyv-serialize", + "simba/rkyv-serialize", +] bytemuck-serialize = ["bytemuck", "nalgebra/convert-bytemuck"] simd-stable = ["simba/wide", "simd-is-enabled"] @@ -69,3 +81,109 @@ rstar = "0.12.0" oorandom = "11" ptree = "0.4.0" rand = { version = "0.8" } + +[package.metadata.docs.rs] +rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"] +all-features = true +cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] + +[[example]] +name = "aabb3d.rs" +path = "examples/aabb3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "ball3d.rs" +path = "examples/ball3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "bounding_sphere3d.rs" +path = "examples/bounding_sphere3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "capsule.rs" +path = "examples/capsule.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "cone.rs" +path = "examples/cone.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "contact_query3d.rs" +path = "examples/contact_query3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex3d.rs" +path = "examples/convex3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex_hull3d.rs" +path = "examples/convex_hull3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "convex_try_new3d.rs" +path = "examples/convex_try_new3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "cuboid3d.rs" +path = "examples/cuboid3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "cylinder.rs" +path = "examples/cylinder.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "distance_query3d.rs" +path = "examples/distance_query3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "getting_started.rs" +path = "examples/getting_started.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "mesh3d.rs" +path = "examples/mesh3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "plane3d.rs" +path = "examples/plane3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "polyline3d.rs" +path = "examples/polyline3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "proximity_query3d.rs" +path = "examples/proximity_query3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "solid_point_query3d.rs" +path = "examples/solid_point_query3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "solid_ray_cast3d.rs" +path = "examples/solid_ray_cast3d.rs.rs" +doc-scrape-examples = true + +[[example]] +name = "time_of_impact_query3d.rs" +path = "examples/time_of_impact_query3d.rs.rs" +doc-scrape-examples = true + diff --git a/publish.sh b/publish.sh index 093e5a36..0dff43d8 100755 --- a/publish.sh +++ b/publish.sh @@ -9,24 +9,32 @@ cp -r LICENSE README.md $tmp/. ### Publish the 2D version. sed 's#\.\./\.\./src#src#g' crates/parry2d/Cargo.toml > $tmp/Cargo.toml +rm -rf $tmp/examples +cp -r crates/parry2d/examples examples currdir=`pwd` cd $tmp && cargo publish cd $currdir ### Publish the 2D f64 version. sed 's#\.\./\.\./src#src#g' crates/parry2d-f64/Cargo.toml > $tmp/Cargo.toml +rm -rf $tmp/examples +cp -r crates/parry2d/examples examples cd $tmp && cargo publish cd $currdir ### Publish the 3D version. sed 's#\.\./\.\./src#src#g' crates/parry3d/Cargo.toml > $tmp/Cargo.toml +rm -rf $tmp/examples +cp -r crates/parry3d/examples $tmp/examples cp -r LICENSE README.md $tmp/. cd $tmp && cargo publish cd $currdir ### Publish the 3D f64 version. sed 's#\.\./\.\./src#src#g' crates/parry3d-f64/Cargo.toml > $tmp/Cargo.toml +rm -rf $tmp/examples +cp -r crates/parry3d/examples $tmp/examples cp -r LICENSE README.md $tmp/. cd $tmp && cargo publish diff --git a/write_examples.sh b/write_examples.sh new file mode 100644 index 00000000..922cd312 --- /dev/null +++ b/write_examples.sh @@ -0,0 +1,23 @@ +#! /bin/bash + +write_examples() { + examples_path=$1 + output_path=$2 + + echo >> $output_path + + find $examples_path -type f -iname '*.rs' -print0 | + while IFS= read -r -d '' line; do + example=$(basename ${line}) + echo "[[example]]" >> $output_path + echo "name = \"$example\"" >> $output_path + echo "path = \"examples/$example.rs\"" >> $output_path + echo "doc-scrape-examples = true" >> $output_path + echo >> $output_path + done +} + +write_examples ./crates/parry2d/examples ./crates/parry2d/Cargo.toml +write_examples ./crates/parry2d/examples ./crates/parry2d-f64/Cargo.toml +write_examples ./crates/parry3d/examples ./crates/parry3d/Cargo.toml +write_examples ./crates/parry3d/examples ./crates/parry3d-f64/Cargo.toml From 2af4116614ab0816380dcf104b162cb19fe7d62d Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Tue, 23 Jul 2024 15:33:30 +0200 Subject: [PATCH 3/7] fix example filenames + removed examples from f64 variants f64 examples require more work to support, using parry::math::Real is a controversial solution --- crates/parry2d-f64/Cargo.toml | 90 ----------------- crates/parry2d/Cargo.toml | 69 ++++++------- crates/parry2d/examples/ball2d.rs | 2 +- crates/parry2d/examples/convex2d.rs | 2 +- crates/parry2d/examples/convex_try_new2d.rs | 2 +- crates/parry2d/examples/cuboid2d.rs | 2 +- crates/parry3d-f64/Cargo.toml | 105 -------------------- crates/parry3d/Cargo.toml | 80 +++++++-------- publish.sh | 5 +- src/utils/hashmap.rs | 1 - write_examples.sh | 4 +- 11 files changed, 83 insertions(+), 279 deletions(-) diff --git a/crates/parry2d-f64/Cargo.toml b/crates/parry2d-f64/Cargo.toml index 0ab90f95..e047f4c6 100644 --- a/crates/parry2d-f64/Cargo.toml +++ b/crates/parry2d-f64/Cargo.toml @@ -85,93 +85,3 @@ simba = { version = "0.9", default-features = false } oorandom = "11" ptree = "0.4.0" rand = { version = "0.8" } - -[package.metadata.docs.rs] -rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"] -all-features = true -cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] - -[[example]] -name = "aabb2d.rs" -path = "examples/aabb2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "ball2d.rs" -path = "examples/ball2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "bounding_sphere2d.rs" -path = "examples/bounding_sphere2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "contact_query2d.rs" -path = "examples/contact_query2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "convex2d.rs" -path = "examples/convex2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "convex_hull2d.rs" -path = "examples/convex_hull2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "convex_try_new2d.rs" -path = "examples/convex_try_new2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "cuboid2d.rs" -path = "examples/cuboid2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "distance_query2d.rs" -path = "examples/distance_query2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "plane2d.rs" -path = "examples/plane2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "point_in_poly2d.rs" -path = "examples/point_in_poly2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "polygons_intersection2d.rs" -path = "examples/polygons_intersection2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "polyline2d.rs" -path = "examples/polyline2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "proximity_query2d.rs" -path = "examples/proximity_query2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "solid_point_query2d.rs" -path = "examples/solid_point_query2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "solid_ray_cast2d.rs" -path = "examples/solid_ray_cast2d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "time_of_impact_query2d.rs" -path = "examples/time_of_impact_query2d.rs.rs" -doc-scrape-examples = true diff --git a/crates/parry2d/Cargo.toml b/crates/parry2d/Cargo.toml index 39138118..69901476 100644 --- a/crates/parry2d/Cargo.toml +++ b/crates/parry2d/Cargo.toml @@ -93,86 +93,87 @@ all-features = true cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] [[example]] -name = "aabb2d.rs" -path = "examples/aabb2d.rs.rs" +name = "aabb2d" +path = "examples/aabb2d.rs" doc-scrape-examples = true [[example]] -name = "ball2d.rs" -path = "examples/ball2d.rs.rs" +name = "ball2d" +path = "examples/ball2d.rs" doc-scrape-examples = true [[example]] -name = "bounding_sphere2d.rs" -path = "examples/bounding_sphere2d.rs.rs" +name = "bounding_sphere2d" +path = "examples/bounding_sphere2d.rs" doc-scrape-examples = true [[example]] -name = "contact_query2d.rs" -path = "examples/contact_query2d.rs.rs" +name = "contact_query2d" +path = "examples/contact_query2d.rs" doc-scrape-examples = true [[example]] -name = "convex2d.rs" -path = "examples/convex2d.rs.rs" +name = "convex2d" +path = "examples/convex2d.rs" doc-scrape-examples = true [[example]] -name = "convex_hull2d.rs" -path = "examples/convex_hull2d.rs.rs" +name = "convex_hull2d" +path = "examples/convex_hull2d.rs" doc-scrape-examples = true [[example]] -name = "convex_try_new2d.rs" -path = "examples/convex_try_new2d.rs.rs" +name = "convex_try_new2d" +path = "examples/convex_try_new2d.rs" doc-scrape-examples = true [[example]] -name = "cuboid2d.rs" -path = "examples/cuboid2d.rs.rs" +name = "cuboid2d" +path = "examples/cuboid2d.rs" doc-scrape-examples = true [[example]] -name = "distance_query2d.rs" -path = "examples/distance_query2d.rs.rs" +name = "distance_query2d" +path = "examples/distance_query2d.rs" doc-scrape-examples = true [[example]] -name = "plane2d.rs" -path = "examples/plane2d.rs.rs" +name = "plane2d" +path = "examples/plane2d.rs" doc-scrape-examples = true [[example]] -name = "point_in_poly2d.rs" -path = "examples/point_in_poly2d.rs.rs" +name = "point_in_poly2d" +path = "examples/point_in_poly2d.rs" doc-scrape-examples = true [[example]] -name = "polygons_intersection2d.rs" -path = "examples/polygons_intersection2d.rs.rs" +name = "polygons_intersection2d" +path = "examples/polygons_intersection2d.rs" doc-scrape-examples = true [[example]] -name = "polyline2d.rs" -path = "examples/polyline2d.rs.rs" +name = "polyline2d" +path = "examples/polyline2d.rs" doc-scrape-examples = true [[example]] -name = "proximity_query2d.rs" -path = "examples/proximity_query2d.rs.rs" +name = "proximity_query2d" +path = "examples/proximity_query2d.rs" doc-scrape-examples = true [[example]] -name = "solid_point_query2d.rs" -path = "examples/solid_point_query2d.rs.rs" +name = "solid_point_query2d" +path = "examples/solid_point_query2d.rs" doc-scrape-examples = true [[example]] -name = "solid_ray_cast2d.rs" -path = "examples/solid_ray_cast2d.rs.rs" +name = "solid_ray_cast2d" +path = "examples/solid_ray_cast2d.rs" doc-scrape-examples = true [[example]] -name = "time_of_impact_query2d.rs" -path = "examples/time_of_impact_query2d.rs.rs" +name = "time_of_impact_query2d" +path = "examples/time_of_impact_query2d.rs" doc-scrape-examples = true + diff --git a/crates/parry2d/examples/ball2d.rs b/crates/parry2d/examples/ball2d.rs index 31577edf..05dbc9fd 100644 --- a/crates/parry2d/examples/ball2d.rs +++ b/crates/parry2d/examples/ball2d.rs @@ -1,6 +1,6 @@ use parry2d::shape::Ball; fn main() { - let ball = Ball::new(1.0f32); + let ball = Ball::new(1.0); assert!(ball.radius == 1.0); } diff --git a/crates/parry2d/examples/convex2d.rs b/crates/parry2d/examples/convex2d.rs index 541bc5a6..9bfeb8bb 100644 --- a/crates/parry2d/examples/convex2d.rs +++ b/crates/parry2d/examples/convex2d.rs @@ -6,7 +6,7 @@ use parry2d::shape::ConvexPolygon; fn main() { let points = [ - Point2::new(-1.0f32, 1.0), + Point2::new(-1.0, 1.0), Point2::new(-0.5, -0.5), Point2::new(0.0, 0.5), Point2::new(0.5, -0.5), diff --git a/crates/parry2d/examples/convex_try_new2d.rs b/crates/parry2d/examples/convex_try_new2d.rs index 45288785..31eb0625 100644 --- a/crates/parry2d/examples/convex_try_new2d.rs +++ b/crates/parry2d/examples/convex_try_new2d.rs @@ -5,7 +5,7 @@ use parry2d::shape::ConvexPolygon; fn main() { let points = vec![ - Point2::new(-1.0f32, 1.0), + Point2::new(-1.0, 1.0), Point2::new(-0.5, -0.5), Point2::new(0.5, -0.5), Point2::new(1.0, 1.0), diff --git a/crates/parry2d/examples/cuboid2d.rs b/crates/parry2d/examples/cuboid2d.rs index 57611fe7..cc392b7a 100644 --- a/crates/parry2d/examples/cuboid2d.rs +++ b/crates/parry2d/examples/cuboid2d.rs @@ -4,7 +4,7 @@ use na::Vector2; use parry2d::shape::Cuboid; fn main() { - let cuboid = Cuboid::new(Vector2::new(2.0f32, 1.0)); + let cuboid = Cuboid::new(Vector2::new(2.0, 1.0)); assert!(cuboid.half_extents.x == 2.0); assert!(cuboid.half_extents.y == 1.0); diff --git a/crates/parry3d-f64/Cargo.toml b/crates/parry3d-f64/Cargo.toml index bf653315..f6f96524 100644 --- a/crates/parry3d-f64/Cargo.toml +++ b/crates/parry3d-f64/Cargo.toml @@ -83,108 +83,3 @@ thiserror = { version = "1", optional = true } oorandom = "11" ptree = "0.4.0" rand = { version = "0.8" } - -[package.metadata.docs.rs] -rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"] -all-features = true -cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] - -[[example]] -name = "aabb3d.rs" -path = "examples/aabb3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "ball3d.rs" -path = "examples/ball3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "bounding_sphere3d.rs" -path = "examples/bounding_sphere3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "capsule.rs" -path = "examples/capsule.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "cone.rs" -path = "examples/cone.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "contact_query3d.rs" -path = "examples/contact_query3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "convex3d.rs" -path = "examples/convex3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "convex_hull3d.rs" -path = "examples/convex_hull3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "convex_try_new3d.rs" -path = "examples/convex_try_new3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "cuboid3d.rs" -path = "examples/cuboid3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "cylinder.rs" -path = "examples/cylinder.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "distance_query3d.rs" -path = "examples/distance_query3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "getting_started.rs" -path = "examples/getting_started.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "mesh3d.rs" -path = "examples/mesh3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "plane3d.rs" -path = "examples/plane3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "polyline3d.rs" -path = "examples/polyline3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "proximity_query3d.rs" -path = "examples/proximity_query3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "solid_point_query3d.rs" -path = "examples/solid_point_query3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "solid_ray_cast3d.rs" -path = "examples/solid_ray_cast3d.rs.rs" -doc-scrape-examples = true - -[[example]] -name = "time_of_impact_query3d.rs" -path = "examples/time_of_impact_query3d.rs.rs" -doc-scrape-examples = true diff --git a/crates/parry3d/Cargo.toml b/crates/parry3d/Cargo.toml index 9d951ba7..c562be51 100644 --- a/crates/parry3d/Cargo.toml +++ b/crates/parry3d/Cargo.toml @@ -88,102 +88,102 @@ all-features = true cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] [[example]] -name = "aabb3d.rs" -path = "examples/aabb3d.rs.rs" +name = "aabb3d" +path = "examples/aabb3d.rs" doc-scrape-examples = true [[example]] -name = "ball3d.rs" -path = "examples/ball3d.rs.rs" +name = "ball3d" +path = "examples/ball3d.rs" doc-scrape-examples = true [[example]] -name = "bounding_sphere3d.rs" -path = "examples/bounding_sphere3d.rs.rs" +name = "bounding_sphere3d" +path = "examples/bounding_sphere3d.rs" doc-scrape-examples = true [[example]] -name = "capsule.rs" -path = "examples/capsule.rs.rs" +name = "capsule" +path = "examples/capsule.rs" doc-scrape-examples = true [[example]] -name = "cone.rs" -path = "examples/cone.rs.rs" +name = "cone" +path = "examples/cone.rs" doc-scrape-examples = true [[example]] -name = "contact_query3d.rs" -path = "examples/contact_query3d.rs.rs" +name = "contact_query3d" +path = "examples/contact_query3d.rs" doc-scrape-examples = true [[example]] -name = "convex3d.rs" -path = "examples/convex3d.rs.rs" +name = "convex3d" +path = "examples/convex3d.rs" doc-scrape-examples = true [[example]] -name = "convex_hull3d.rs" -path = "examples/convex_hull3d.rs.rs" +name = "convex_hull3d" +path = "examples/convex_hull3d.rs" doc-scrape-examples = true [[example]] -name = "convex_try_new3d.rs" -path = "examples/convex_try_new3d.rs.rs" +name = "convex_try_new3d" +path = "examples/convex_try_new3d.rs" doc-scrape-examples = true [[example]] -name = "cuboid3d.rs" -path = "examples/cuboid3d.rs.rs" +name = "cuboid3d" +path = "examples/cuboid3d.rs" doc-scrape-examples = true [[example]] -name = "cylinder.rs" -path = "examples/cylinder.rs.rs" +name = "cylinder" +path = "examples/cylinder.rs" doc-scrape-examples = true [[example]] -name = "distance_query3d.rs" -path = "examples/distance_query3d.rs.rs" +name = "distance_query3d" +path = "examples/distance_query3d.rs" doc-scrape-examples = true [[example]] -name = "getting_started.rs" -path = "examples/getting_started.rs.rs" +name = "getting_started" +path = "examples/getting_started.rs" doc-scrape-examples = true [[example]] -name = "mesh3d.rs" -path = "examples/mesh3d.rs.rs" +name = "mesh3d" +path = "examples/mesh3d.rs" doc-scrape-examples = true [[example]] -name = "plane3d.rs" -path = "examples/plane3d.rs.rs" +name = "plane3d" +path = "examples/plane3d.rs" doc-scrape-examples = true [[example]] -name = "polyline3d.rs" -path = "examples/polyline3d.rs.rs" +name = "polyline3d" +path = "examples/polyline3d.rs" doc-scrape-examples = true [[example]] -name = "proximity_query3d.rs" -path = "examples/proximity_query3d.rs.rs" +name = "proximity_query3d" +path = "examples/proximity_query3d.rs" doc-scrape-examples = true [[example]] -name = "solid_point_query3d.rs" -path = "examples/solid_point_query3d.rs.rs" +name = "solid_point_query3d" +path = "examples/solid_point_query3d.rs" doc-scrape-examples = true [[example]] -name = "solid_ray_cast3d.rs" -path = "examples/solid_ray_cast3d.rs.rs" +name = "solid_ray_cast3d" +path = "examples/solid_ray_cast3d.rs" doc-scrape-examples = true [[example]] -name = "time_of_impact_query3d.rs" -path = "examples/time_of_impact_query3d.rs.rs" +name = "time_of_impact_query3d" +path = "examples/time_of_impact_query3d.rs" doc-scrape-examples = true diff --git a/publish.sh b/publish.sh index 0dff43d8..eed651d1 100755 --- a/publish.sh +++ b/publish.sh @@ -10,7 +10,7 @@ cp -r LICENSE README.md $tmp/. ### Publish the 2D version. sed 's#\.\./\.\./src#src#g' crates/parry2d/Cargo.toml > $tmp/Cargo.toml rm -rf $tmp/examples -cp -r crates/parry2d/examples examples +cp -r crates/parry2d/examples $tmp/examples currdir=`pwd` cd $tmp && cargo publish cd $currdir @@ -18,7 +18,8 @@ cd $currdir ### Publish the 2D f64 version. sed 's#\.\./\.\./src#src#g' crates/parry2d-f64/Cargo.toml > $tmp/Cargo.toml rm -rf $tmp/examples -cp -r crates/parry2d/examples examples +cp -r crates/parry2d/examples $tmp/examples +find $tmp/examples | xargs sed 's/parry2d:/parry2d_f64:/g cd $tmp && cargo publish cd $currdir diff --git a/src/utils/hashmap.rs b/src/utils/hashmap.rs index a5d02a3d..aeb5b1d3 100644 --- a/src/utils/hashmap.rs +++ b/src/utils/hashmap.rs @@ -5,7 +5,6 @@ use indexmap::IndexMap as StdHashMap; #[cfg(all(not(feature = "enhanced-determinism"), feature = "serde-serialize"))] use std::collections::HashMap as StdHashMap; - use std::mem::size_of; /// Serializes only the capacity of a hash-map instead of its actual content. diff --git a/write_examples.sh b/write_examples.sh index 922cd312..2a06c89b 100644 --- a/write_examples.sh +++ b/write_examples.sh @@ -8,7 +8,7 @@ write_examples() { find $examples_path -type f -iname '*.rs' -print0 | while IFS= read -r -d '' line; do - example=$(basename ${line}) + example=$(basename ${line} .rs) echo "[[example]]" >> $output_path echo "name = \"$example\"" >> $output_path echo "path = \"examples/$example.rs\"" >> $output_path @@ -18,6 +18,4 @@ write_examples() { } write_examples ./crates/parry2d/examples ./crates/parry2d/Cargo.toml -write_examples ./crates/parry2d/examples ./crates/parry2d-f64/Cargo.toml write_examples ./crates/parry3d/examples ./crates/parry3d/Cargo.toml -write_examples ./crates/parry3d/examples ./crates/parry3d-f64/Cargo.toml From d7f01acd9f235b2d23d0dba588c5d92551ceb89c Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Mon, 29 Jul 2024 15:19:47 +0200 Subject: [PATCH 4/7] fix rustdoc flags + add comment to clarify --- crates/parry2d/Cargo.toml | 8 +++++--- crates/parry3d/Cargo.toml | 4 +--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/parry2d/Cargo.toml b/crates/parry2d/Cargo.toml index 69901476..29ceb142 100644 --- a/crates/parry2d/Cargo.toml +++ b/crates/parry2d/Cargo.toml @@ -88,10 +88,13 @@ rand = { version = "0.8" } macroquad = "0.4" [package.metadata.docs.rs] -rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"] -all-features = true +rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"] cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] +# The following listing is to allow for examples to be scraped, +# see https://doc.rust-lang.org/rustdoc/scraped-examples.html#scraped-examples for details. +# To help with generating this list, see the script `write_examples.sh` + [[example]] name = "aabb2d" path = "examples/aabb2d.rs" @@ -176,4 +179,3 @@ doc-scrape-examples = true name = "time_of_impact_query2d" path = "examples/time_of_impact_query2d.rs" doc-scrape-examples = true - diff --git a/crates/parry3d/Cargo.toml b/crates/parry3d/Cargo.toml index c562be51..603befbc 100644 --- a/crates/parry3d/Cargo.toml +++ b/crates/parry3d/Cargo.toml @@ -83,8 +83,7 @@ ptree = "0.4.0" rand = { version = "0.8" } [package.metadata.docs.rs] -rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"] -all-features = true +rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"] cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] [[example]] @@ -186,4 +185,3 @@ doc-scrape-examples = true name = "time_of_impact_query3d" path = "examples/time_of_impact_query3d.rs" doc-scrape-examples = true - From 4b5d032447a967f4f8c5ae4744a876509686feb2 Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Mon, 29 Jul 2024 15:21:23 +0200 Subject: [PATCH 5/7] parry 3d example comment too --- crates/parry3d/Cargo.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/parry3d/Cargo.toml b/crates/parry3d/Cargo.toml index 176586f4..05797c45 100644 --- a/crates/parry3d/Cargo.toml +++ b/crates/parry3d/Cargo.toml @@ -93,6 +93,10 @@ rand = { version = "0.8" } rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"] cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] +# The following listing is to allow for examples to be scraped, +# see https://doc.rust-lang.org/rustdoc/scraped-examples.html#scraped-examples for details. +# To help with generating this list, see the script `write_examples.sh` + [[example]] name = "aabb3d" path = "examples/aabb3d.rs" From b00d475eb222b0fbd61d4ed0a0076a01d8bdfdbc Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Tue, 30 Jul 2024 16:35:42 +0200 Subject: [PATCH 6/7] fix publish script to only add examples for f32 versions --- publish.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/publish.sh b/publish.sh index eed651d1..5380b92f 100755 --- a/publish.sh +++ b/publish.sh @@ -17,9 +17,6 @@ cd $currdir ### Publish the 2D f64 version. sed 's#\.\./\.\./src#src#g' crates/parry2d-f64/Cargo.toml > $tmp/Cargo.toml -rm -rf $tmp/examples -cp -r crates/parry2d/examples $tmp/examples -find $tmp/examples | xargs sed 's/parry2d:/parry2d_f64:/g cd $tmp && cargo publish cd $currdir @@ -34,8 +31,6 @@ cd $currdir ### Publish the 3D f64 version. sed 's#\.\./\.\./src#src#g' crates/parry3d-f64/Cargo.toml > $tmp/Cargo.toml -rm -rf $tmp/examples -cp -r crates/parry3d/examples $tmp/examples cp -r LICENSE README.md $tmp/. cd $tmp && cargo publish From 1713071c6c7120c4f33f7b239c4afc685d3d006b Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Tue, 30 Jul 2024 16:37:00 +0200 Subject: [PATCH 7/7] fix sizeof --- src/utils/hashmap.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/utils/hashmap.rs b/src/utils/hashmap.rs index 5e1dba64..aeb5b1d3 100644 --- a/src/utils/hashmap.rs +++ b/src/utils/hashmap.rs @@ -7,8 +7,6 @@ use indexmap::IndexMap as StdHashMap; use std::collections::HashMap as StdHashMap; use std::mem::size_of; -use std::mem::size_of; - /// Serializes only the capacity of a hash-map instead of its actual content. #[cfg(feature = "serde-serialize")] pub fn serialize_hashmap_capacity(