diff --git a/Cargo.lock b/Cargo.lock index 780a7ed2d..eb9068079 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1071,6 +1071,12 @@ dependencies = [ "rand", ] +[[package]] +name = "document-features" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b01c09fd63b5136fba41aa625c7b3254f0aa0a435ff6ec4b2c9a28d496c83c88" + [[package]] name = "downcast-rs" version = "1.2.0" @@ -1128,6 +1134,7 @@ dependencies = [ "bytemuck", "dark-light", "directories-next", + "document-features", "egui", "egui-wgpu", "egui-winit", @@ -1153,6 +1160,7 @@ name = "egui" version = "0.18.1" dependencies = [ "ahash 0.7.6", + "document-features", "epaint", "nohash-hasher", "ron", @@ -1165,6 +1173,7 @@ name = "egui-wgpu" version = "0.18.0" dependencies = [ "bytemuck", + "document-features", "egui", "pollster", "tracing", @@ -1178,6 +1187,7 @@ name = "egui-winit" version = "0.18.0" dependencies = [ "arboard", + "document-features", "egui", "instant", "puffin", @@ -1215,6 +1225,7 @@ version = "0.18.0" dependencies = [ "chrono", "criterion", + "document-features", "egui", "egui_extras", "enum-map", @@ -1229,6 +1240,7 @@ name = "egui_extras" version = "0.18.0" dependencies = [ "chrono", + "document-features", "egui", "image", "resvg", @@ -1244,6 +1256,7 @@ version = "0.18.0" dependencies = [ "ahash 0.7.6", "bytemuck", + "document-features", "egui", "egui-winit", "glium", @@ -1255,6 +1268,7 @@ name = "egui_glow" version = "0.18.1" dependencies = [ "bytemuck", + "document-features", "egui", "egui-winit", "glow", @@ -1290,6 +1304,7 @@ name = "emath" version = "0.18.0" dependencies = [ "bytemuck", + "document-features", "mint", "serde", ] @@ -1361,6 +1376,7 @@ dependencies = [ "cint", "color-hex", "criterion", + "document-features", "emath", "nohash-hasher", "parking_lot 0.12.0", diff --git a/eframe/Cargo.toml b/eframe/Cargo.toml index 986e6c39a..4ff1f94f4 100644 --- a/eframe/Cargo.toml +++ b/eframe/Cargo.toml @@ -22,16 +22,17 @@ all-features = true [features] default = ["default_fonts", "glow"] -# detect dark mode system preference +## Detect dark mode system preference using [`dark-light`](https://docs.rs/dark-light). dark-light = ["dep:dark-light"] -# If set, egui will use `include_bytes!` to bundle some fonts. -# If you plan on specifying your own fonts you may disable this feature. +## If set, egui will use `include_bytes!` to bundle some fonts. +## If you plan on specifying your own fonts you may disable this feature. default_fonts = ["egui/default_fonts"] +## Use [`glow`](https://github.com/grovesNL/glow) for painting, via [`egui_glow`](https://github.com/emilk/egui/tree/master/egui_glow). glow = ["dep:glow", "egui_glow"] -# Enable saving app state to disk. +## Enable saving app state to disk. persistence = [ "directories-next", "egui-winit/serde", @@ -40,29 +41,34 @@ persistence = [ "serde", ] -# Enable profiling with the puffin crate: https://github.com/EmbarkStudios/puffin -# Only enabled on native, because of the low resolution (1ms) of time keeping in browsers. -# eframe will call `puffin::GlobalProfiler::lock().new_frame()` for you +## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate. +## +## Only enabled on native, because of the low resolution (1ms) of time keeping in browsers. +## `eframe` will call `puffin::GlobalProfiler::lock().new_frame()` for you puffin = ["dep:puffin", "egui_glow/puffin"] -# enable screen reader support (requires `ctx.options().screen_reader = true;`) +## Enable screen reader support (requires `ctx.options().screen_reader = true;`) screen_reader = [ "egui-winit/screen_reader", "tts", ] -# Use WGPU as the backend instead of glow +## Use [`wgpu`](https://docs.rs/wgpu) for painting (via [`egui_wgpu`](https://github.com/emilk/egui/tree/master/egui_wgpu)). +## This overrides the `glow` feature. wgpu = ["dep:wgpu", "egui-wgpu"] [dependencies] +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" + egui = { version = "0.18.0", path = "../egui", default-features = false, features = [ "bytemuck", "tracing", ] } tracing = "0.1" -# optional: +#! ### Optional dependencies egui_glow = { version = "0.18.0", path = "../egui_glow", optional = true, default-features = false } egui-wgpu = { version = "0.18.0", path = "../egui-wgpu", optional = true, features = ["winit"] } glow = { version = "0.11", optional = true } @@ -133,6 +139,6 @@ web-sys = { version = "0.3.52", features = [ "Window", ] } -# optional: +# optional # feature screen_reader tts = { version = "0.20", optional = true } # stuck on old version due to compilation problems on linux diff --git a/eframe/src/lib.rs b/eframe/src/lib.rs index 57d571a7c..51e360891 100644 --- a/eframe/src/lib.rs +++ b/eframe/src/lib.rs @@ -52,6 +52,10 @@ //! eframe::start_web(canvas_id, Box::new(|cc| Box::new(MyApp::new(cc)))) //! } //! ``` +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::needless_doctest_main)] diff --git a/egui-wgpu/Cargo.toml b/egui-wgpu/Cargo.toml index e0ae620ec..c81e1bf84 100644 --- a/egui-wgpu/Cargo.toml +++ b/egui-wgpu/Cargo.toml @@ -28,11 +28,14 @@ all-features = true [features] -# Make it easy to create bindings for winit. +## Enable [`winit`](https://docs.rs/winit) integration. winit = ["dep:pollster", "dep:winit"] [dependencies] +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" + egui = { version = "0.18.1", path = "../egui", default-features = false, features = [ "bytemuck", ] } @@ -42,6 +45,6 @@ tracing = "0.1" type-map = "0.5.0" wgpu = { version = "0.12", features = ["webgl"] } -# Optional: +#! ### Optional dependencies pollster = { version = "0.2", optional = true } winit = { version = "0.26", optional = true } diff --git a/egui-wgpu/src/lib.rs b/egui-wgpu/src/lib.rs index 89cb09c84..9004edcf0 100644 --- a/egui-wgpu/src/lib.rs +++ b/egui-wgpu/src/lib.rs @@ -1,4 +1,8 @@ //! This crates provides bindings between [`egui`](https://github.com/emilk/egui) and [wgpu](https://crates.io/crates/wgpu). +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(unsafe_code)] diff --git a/egui-winit/Cargo.toml b/egui-winit/Cargo.toml index 7889093b8..3047c7262 100644 --- a/egui-winit/Cargo.toml +++ b/egui-winit/Cargo.toml @@ -20,27 +20,30 @@ all-features = true [features] default = ["clipboard", "links"] -# implement bytemuck on most types. +## [`bytemuck`](https://docs.rs/bytemuck) enables you to cast [`egui::epaint::Vertex`], [`egui::Vec2`] etc to `&[u8]`. bytemuck = ["egui/bytemuck"] -# enable cut/copy/paste to OS clipboard. -# if disabled a clipboard will be simulated so you can still copy/paste within the egui app. +## Enable cut/copy/paste to OS clipboard. +## If disabled a clipboard will be simulated so you can still copy/paste within the egui app. clipboard = ["arboard", "smithay-clipboard"] -# enable opening links in a browser when an egui hyperlink is clicked. +## Enable opening links in a browser when an egui hyperlink is clicked. links = ["webbrowser"] -# enable profiling with the puffin crate: https://github.com/EmbarkStudios/puffin +## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate. puffin = ["dep:puffin"] -# experimental support for a screen reader +## Experimental support for a screen reader. screen_reader = ["tts"] -# to serialize `WindowSettings` +## Allow serialization of [`WindowSettings`] using [`serde`](https://docs.rs/serde). serde = ["egui/serde", "dep:serde"] [dependencies] +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" + egui = { version = "0.18.0", path = "../egui", default-features = false, features = [ "tracing", ] } diff --git a/egui-winit/src/lib.rs b/egui-winit/src/lib.rs index 6ce512043..23ba3c588 100644 --- a/egui-winit/src/lib.rs +++ b/egui-winit/src/lib.rs @@ -2,6 +2,10 @@ //! //! The library translates winit events to egui, handled copy/paste, //! updates the cursor, open links clicked in egui, etc. +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::manual_range_contains)] diff --git a/egui/Cargo.toml b/egui/Cargo.toml index 4d4433168..63865f1bc 100644 --- a/egui/Cargo.toml +++ b/egui/Cargo.toml @@ -22,45 +22,48 @@ all-features = true [features] default = ["default_fonts"] -# add compatibility with https://crates.io/crates/cint +## [`bytemuck`](https://docs.rs/bytemuck) enables you to cast [`epaint::Vertex`], [`emath::Vec2`] etc to `&[u8]`. +bytemuck = ["epaint/bytemuck"] + +## [`cint`](https://docs.rs/cint) enables interopability with other color libraries. cint = ["epaint/cint"] -# implement bytemuck on most types. -bytemuck = ["epaint/bytemuck"] +## Enable the [`hex_color`] macro. +color-hex = ["epaint/color-hex"] -# This will automatically detect deadlocks due to double-locking on the same thread. -# If your app freezes, you may want to enable this! -# Only affects `epaint::mutex::RwLock` (which egui uses a lot). +## This will automatically detect deadlocks due to double-locking on the same thread. +## If your app freezes, you may want to enable this! +## Only affects [`epaint::mutex::RwLock`] (which egui uses a lot). deadlock_detection = ["epaint/deadlock_detection"] -# If set, egui will use `include_bytes!` to bundle some fonts. -# If you plan on specifying your own fonts you may disable this feature. +## If set, egui will use `include_bytes!` to bundle some fonts. +## If you plan on specifying your own fonts you may disable this feature. default_fonts = ["epaint/default_fonts"] -# Enable additional checks if debug assertions are enabled (debug builds). +## Enable additional checks if debug assertions are enabled (debug builds). extra_debug_asserts = ["epaint/extra_debug_asserts"] -# Always enable additional checks. +## Always enable additional checks. extra_asserts = ["epaint/extra_asserts"] -# Add compatability with https://github.com/kvark/mint +## [`mint`](https://docs.rs/mint) enables interopability with other math libraries such as [`glam`](https://docs.rs/glam) and [`nalgebra`](https://docs.rs/nalgebra). mint = ["epaint/mint"] -# enable persistence of memory (window positions etc). +## Enable persistence of memory (window positions etc). persistence = ["serde", "epaint/serde", "ron"] -# implement serde on most types. +## Allow serialization using [`serde`](https://docs.rs/serde). serde = ["dep:serde", "epaint/serde"] -# Ease of use hex to Color32 macro -color-hex = ["epaint/color-hex"] - [dependencies] +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" + epaint = { version = "0.18.1", path = "../epaint", default-features = false } ahash = "0.7" nohash-hasher = "0.2" -# Optional: +#! ### Optional dependencies ron = { version = "0.7", optional = true } serde = { version = "1", optional = true, features = ["derive", "rc"] } # egui doesn't log much, but when it does, it uses `tracing` diff --git a/egui/src/lib.rs b/egui/src/lib.rs index 2ba1233af..ba663de3b 100644 --- a/egui/src/lib.rs +++ b/egui/src/lib.rs @@ -291,6 +291,10 @@ //! }); // the temporary settings are reverted here //! # }); //! ``` +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::float_cmp)] #![allow(clippy::manual_range_contains)] diff --git a/egui_demo_lib/Cargo.toml b/egui_demo_lib/Cargo.toml index 15185912d..54614b2e8 100644 --- a/egui_demo_lib/Cargo.toml +++ b/egui_demo_lib/Cargo.toml @@ -23,11 +23,16 @@ all-features = true default = [] chrono = ["egui_extras/datepicker", "dep:chrono"] +## Allow serialization using [`serde`](https://docs.rs/serde). serde = ["egui/serde", "dep:serde"] +## Enable better syntax highlighting using [`syntect`](https://docs.rs/syntect). syntax_highlighting = ["syntect"] [dependencies] +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" + egui = { version = "0.18.0", path = "../egui", default-features = false } egui_extras = { version = "0.18.0", path = "../egui_extras" } enum-map = { version = "2", features = ["serde"] } diff --git a/egui_demo_lib/src/lib.rs b/egui_demo_lib/src/lib.rs index 49387918c..a92d5a5ae 100644 --- a/egui_demo_lib/src/lib.rs +++ b/egui_demo_lib/src/lib.rs @@ -3,6 +3,10 @@ //! This library can be used to test 3rd party egui integrations (see for instance ). //! //! The demo is also used in benchmarks and tests. +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::float_cmp)] #![allow(clippy::manual_range_contains)] diff --git a/egui_extras/Cargo.toml b/egui_extras/Cargo.toml index 1aff3fb2c..7389c03af 100644 --- a/egui_extras/Cargo.toml +++ b/egui_extras/Cargo.toml @@ -26,29 +26,33 @@ all-features = true [features] default = [] -# Datepicker widget +## Enable [`DatePickerButton`] widget. datepicker = ["chrono"] +## Allow serialization using [`serde`](https://docs.rs/serde). serde = ["dep:serde"] -# Support loading svg images +## Support loading svg images. svg = ["resvg", "tiny-skia", "usvg"] -# Log warnings using `tracing` crate +## Log warnings using `tracing` crate. tracing = ["dep:tracing", "egui/tracing"] [dependencies] egui = { version = "0.18.0", path = "../egui", default-features = false } -# Optional dependencies: +#! ### Optional dependencies # Date operations needed for datepicker widget chrono = { version = "0.4", optional = true } -# Add support for loading images with the `image` crate. -# You also need to ALSO opt-in to the image formats you want to support, like so: -# image = { version = "0.24", features = ["jpeg", "png"] } +## Add support for loading images with the [`image`](https://docs.rs/image) crate. +## +## You also need to ALSO opt-in to the image formats you want to support, like so: +## ```toml +## image = { version = "0.24", features = ["jpeg", "png"] } +## ``` image = { version = "0.24", optional = true, default-features = false } # svg feature @@ -61,3 +65,6 @@ serde = { version = "1", features = ["derive"], optional = true } # feature "tracing" tracing = { version = "0.1", optional = true } + +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" diff --git a/egui_extras/src/lib.rs b/egui_extras/src/lib.rs index 307453066..156ada1a4 100644 --- a/egui_extras/src/lib.rs +++ b/egui_extras/src/lib.rs @@ -1,4 +1,10 @@ -//! This is a crate that adds some features on top top of [`egui`](https://github.com/emilk/egui). This crate are for experimental features, and features that require big dependencies that does not belong in `egui`. +//! This is a crate that adds some features on top top of [`egui`](https://github.com/emilk/egui). +//! +//! This crate are for experimental features, and features that require big dependencies that does not belong in `egui`. +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::float_cmp)] #![allow(clippy::manual_range_contains)] diff --git a/egui_glium/Cargo.toml b/egui_glium/Cargo.toml index 4d3db2cd7..ae1ea1d76 100644 --- a/egui_glium/Cargo.toml +++ b/egui_glium/Cargo.toml @@ -26,18 +26,22 @@ all-features = true [features] default = ["clipboard", "links"] -# enable cut/copy/paste to OS clipboard. -# if disabled a clipboard will be simulated so you can still copy/paste within the egui app. +## Enable cut/copy/paste to OS clipboard. +## +## If disabled a clipboard will be simulated so you can still copy/paste within the egui app. clipboard = ["egui-winit/clipboard"] -# enable opening links in a browser when an egui hyperlink is clicked. +## Enable opening links in a browser when an egui hyperlink is clicked. links = ["egui-winit/links"] -# experimental support for a screen reader. +## Experimental support for a screen reader. screen_reader = ["egui-winit/screen_reader"] [dependencies] +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" + egui = { version = "0.18.0", path = "../egui", default-features = false, features = [ "bytemuck", ] } @@ -47,6 +51,5 @@ ahash = "0.7" bytemuck = "1.7" glium = "0.31" - [dev-dependencies] image = { version = "0.24", default-features = false, features = ["png"] } diff --git a/egui_glium/src/lib.rs b/egui_glium/src/lib.rs index 84a2459fb..dee43b078 100644 --- a/egui_glium/src/lib.rs +++ b/egui_glium/src/lib.rs @@ -3,6 +3,10 @@ //! The main type you want to use is [`EguiGlium`]. //! //! If you are writing an app, you may want to look at [`eframe`](https://docs.rs/eframe) instead. +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::float_cmp)] #![allow(clippy::manual_range_contains)] diff --git a/egui_glow/Cargo.toml b/egui_glow/Cargo.toml index d7efebc67..3b99bab12 100644 --- a/egui_glow/Cargo.toml +++ b/egui_glow/Cargo.toml @@ -26,26 +26,30 @@ all-features = true [features] default = [] -# for the winit integration: -# enable cut/copy/paste to os clipboard. -# if disabled a clipboard will be simulated so you can still copy/paste within the egui app. +## For the `winit` integration: +## enable cut/copy/paste to os clipboard. +## +## if disabled a clipboard will be simulated so you can still copy/paste within the egui app. clipboard = ["egui-winit?/clipboard"] -# for the winit integration: -# enable opening links in a browser when an egui hyperlink is clicked. +## For the `winit` integration: +## enable opening links in a browser when an egui hyperlink is clicked. links = ["egui-winit?/links"] -# experimental support for a screen reader. +## Experimental support for a screen reader. screen_reader = ["egui-winit?/screen_reader"] -# enable profiling with the puffin crate: https://github.com/embarkstudios/puffin +## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate. puffin = ["dep:puffin", "egui-winit?/puffin"] -# enable winit integration. +## Enable [`winit`](https://docs.rs/winit) integration. winit = ["egui-winit",] [dependencies] +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" + egui = { version = "0.18.0", path = "../egui", default-features = false, features = [ "bytemuck", ] } diff --git a/egui_glow/src/lib.rs b/egui_glow/src/lib.rs index 6d3aa3cf3..4e4f9a065 100644 --- a/egui_glow/src/lib.rs +++ b/egui_glow/src/lib.rs @@ -3,6 +3,10 @@ //! The main types you want to look are are [`Painter`] and [`EguiGlow`]. //! //! If you are writing an app, you may want to look at [`eframe`](https://docs.rs/eframe) instead. +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::float_cmp)] #![allow(clippy::manual_range_contains)] diff --git a/emath/Cargo.toml b/emath/Cargo.toml index b3b5f438f..e96a477d3 100644 --- a/emath/Cargo.toml +++ b/emath/Cargo.toml @@ -22,14 +22,23 @@ all-features = true [features] default = [] -# Enable additional checks if debug assertions are enabled (debug builds). +## Enable additional checks if debug assertions are enabled (debug builds). extra_debug_asserts = [] -# Always enable additional checks. +## Always enable additional checks. extra_asserts = [] [dependencies] -# Optional: +#! ### Optional dependencies + +## [`bytemuck`](https://docs.rs/bytemuck) enables you to cast `emath` types to `&[u8]`. bytemuck = { version = "1.7.2", optional = true, features = ["derive"] } + +## [`mint`](https://docs.rs/mint) enables interopability with other math libraries such as [`glam`](https://docs.rs/glam) and [`nalgebra`](https://docs.rs/nalgebra). mint = { version = "0.5.6", optional = true } + +## Allow serialization using [`serde`](https://docs.rs/serde). serde = { version = "1", optional = true, features = ["derive"] } + +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" diff --git a/emath/src/lib.rs b/emath/src/lib.rs index bc1a186f3..c81d3ee7a 100644 --- a/emath/src/lib.rs +++ b/emath/src/lib.rs @@ -14,6 +14,10 @@ //! //! For that, use something else ([`glam`](https://docs.rs/glam), [`nalgebra`](https://docs.rs/nalgebra), …) //! and enable the `mint` feature flag in `emath` to enable implicit conversion to/from `emath`. +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::float_cmp)] #![allow(clippy::manual_range_contains)] diff --git a/epaint/Cargo.toml b/epaint/Cargo.toml index e2c4792af..5757c79b3 100644 --- a/epaint/Cargo.toml +++ b/epaint/Cargo.toml @@ -29,40 +29,49 @@ all-features = true [features] default = ["default_fonts"] -# implement bytemuck on most types. +## [`bytemuck`](https://docs.rs/bytemuck) enables you to cast [`Vertex`] to `&[u8]`. bytemuck = ["dep:bytemuck", "emath/bytemuck"] -# This will automatically detect deadlocks due to double-locking on the same thread. -# If your app freezes, you may want to enable this! -# Only affects `epaint::mutex::RwLock` (which epaint and egui uses a lot). +## This will automatically detect deadlocks due to double-locking on the same thread. +## If your app freezes, you may want to enable this! +## Only affects [`mutex::RwLock`] (which epaint and egui uses a lot). deadlock_detection = ["dep:backtrace"] -# If set, epaint will use `include_bytes!` to bundle some fonts. -# If you plan on specifying your own fonts you may disable this feature. +## If set, epaint will use `include_bytes!` to bundle some fonts. +## If you plan on specifying your own fonts you may disable this feature. default_fonts = [] -# Enable additional checks if debug assertions are enabled (debug builds). +## Enable additional checks if debug assertions are enabled (debug builds). extra_debug_asserts = ["emath/extra_debug_asserts"] -# Always enable additional checks. +## Always enable additional checks. extra_asserts = ["emath/extra_asserts"] -# Add compatability with https://github.com/kvark/mint +## [`mint`](https://docs.rs/mint) enables interopability with other math libraries such as [`glam`](https://docs.rs/glam) and [`nalgebra`](https://docs.rs/nalgebra). mint = ["emath/mint"] -# implement serde on most types. +## Allow serialization using [`serde`](https://docs.rs/serde). serde = ["dep:serde", "ahash/serde", "emath/serde"] [dependencies] +# Needed when generating the docs, but unfortunately also needed by `cargo check` +document-features = "0.2" + emath = { version = "0.18.0", path = "../emath" } ab_glyph = "0.2.11" ahash = { version = "0.7", default-features = false, features = ["std"] } nohash-hasher = "0.2" -# Optional: +#! ### Optional dependencies bytemuck = { version = "1.7.2", optional = true, features = ["derive"] } + +## [`cint`](https://docs.rs/cint) enables interopability with other color libraries. cint = { version = "0.3.1", optional = true } + +## Enable the [`hex_color`] macro. color-hex = { version = "0.2.0", optional = true } + +## Allow serialization using [`serde`](https://docs.rs/serde) . serde = { version = "1", optional = true, features = ["derive", "rc"] } # native: diff --git a/epaint/src/lib.rs b/epaint/src/lib.rs index f4a9e3a1f..cd3477b36 100644 --- a/epaint/src/lib.rs +++ b/epaint/src/lib.rs @@ -4,6 +4,10 @@ //! //! Create some [`Shape`]:s and pass them to [`tessellate_shapes`] to generate [`Mesh`]:es //! that you can then paint using some graphics API of your choice (e.g. OpenGL). +//! +//! ## Feature flags +#![doc = document_features::document_features!()] +//! #![allow(clippy::float_cmp)] #![allow(clippy::manual_range_contains)]