mirror of
https://github.com/emilk/egui.git
synced 2026-06-26 22:53:14 -04:00
<!-- Please read the "Making a PR" section of [`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/master/CONTRIBUTING.md) before opening a Pull Request! * Keep your PR:s small and focused. * The PR title is what ends up in the changelog, so make it descriptive! * If applicable, add a screenshot or gif. * If it is a non-trivial addition, consider adding a demo for it to `egui_demo_lib`, or a new example. * Do NOT open PR:s from your `master` branch, as that makes it hard for maintainers to add commits to your PR. * Remember to run `cargo fmt` and `cargo clippy`. * Open the PR as a draft until you have self-reviewed it and run `./scripts/check.sh`. * When you have addressed a PR comment, mark it as resolved. Please be patient! I will review your PR, but my time is limited! --> All the other crates in egui have serde as an optional dependency - which is great! But sadly egui_extras unconditionally includes it, which adds a bunch of code to stuff that may not care for it. This PR gates serde support behind a new `serde` feature. This is a breaking change; if that's undesirable then we can add it as a default feature instead, though that wouldn't match any of the other crates.
106 lines
2.8 KiB
TOML
106 lines
2.8 KiB
TOML
[package]
|
|
name = "egui_extras"
|
|
version.workspace = true
|
|
authors = [
|
|
"Dominik Rössler <dominik@freshx.de>",
|
|
"Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
|
|
"René Rössler <rene@freshx.de>",
|
|
]
|
|
description = "Extra functionality and widgets for the egui GUI library"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
homepage = "https://github.com/emilk/egui"
|
|
license.workspace = true
|
|
readme = "README.md"
|
|
repository = "https://github.com/emilk/egui"
|
|
categories = ["gui", "game-development"]
|
|
keywords = ["gui", "imgui", "immediate", "portable", "gamedev"]
|
|
include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
|
|
[lib]
|
|
|
|
|
|
[features]
|
|
default = ["dep:mime_guess2"]
|
|
|
|
## Shorthand for enabling the different types of image loaders (`file`, `http`, `image`, `svg`).
|
|
all_loaders = ["file", "http", "image", "svg"]
|
|
|
|
## Enable [`DatePickerButton`] widget.
|
|
datepicker = ["chrono"]
|
|
|
|
## Add support for loading images from `file://` URIs.
|
|
file = ["dep:mime_guess2"]
|
|
|
|
## Add support for loading images via HTTP.
|
|
http = ["dep:ehttp"]
|
|
|
|
## 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.25", features = ["jpeg", "png"] } # Add the types you want support for
|
|
## ```
|
|
image = ["dep:image"]
|
|
|
|
## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate.
|
|
##
|
|
## Only enabled on native, because of the low resolution (1ms) of clocks in browsers.
|
|
puffin = ["dep:puffin", "egui/puffin"]
|
|
|
|
## Support loading svg images.
|
|
svg = ["resvg"]
|
|
|
|
## Enable better syntax highlighting using [`syntect`](https://docs.rs/syntect).
|
|
syntect = ["dep:syntect"]
|
|
|
|
## Derive serde Serialize/Deserialize on stateful structs
|
|
serde = ["egui/serde", "dep:serde"]
|
|
|
|
|
|
[dependencies]
|
|
egui = { workspace = true, default-features = false }
|
|
|
|
ahash.workspace = true
|
|
enum-map = { version = "2", features = ["serde"] }
|
|
log.workspace = true
|
|
|
|
#! ### Optional dependencies
|
|
|
|
# Serde for serializing state
|
|
serde = { workspace = true, optional = true }
|
|
|
|
# Date operations needed for datepicker widget
|
|
chrono = { version = "0.4", optional = true, default-features = false, features = [
|
|
"clock",
|
|
"js-sys",
|
|
"std",
|
|
"wasmbind",
|
|
] }
|
|
|
|
## Enable this when generating docs.
|
|
document-features = { workspace = true, optional = true }
|
|
|
|
image = { workspace = true, optional = true }
|
|
|
|
# file feature
|
|
mime_guess2 = { version = "2", optional = true, default-features = false }
|
|
|
|
puffin = { workspace = true, optional = true }
|
|
|
|
syntect = { version = "5", optional = true, default-features = false, features = [
|
|
"default-fancy",
|
|
] }
|
|
|
|
# svg feature
|
|
resvg = { version = "0.37", optional = true, default-features = false }
|
|
|
|
# http feature
|
|
ehttp = { version = "0.5", optional = true, default-features = false }
|