[workspace] resolver = "2" exclude = [ "tests/test_exercises", "dev", ] [workspace.package] version = "6.3.0" authors = [ "Mo Bitar <mo8it@proton.me>", # https://github.com/mo8it "Liv <mokou@fastmail.com>", # https://github.com/shadows-withal # Alumni "Carol (Nichols || Goulding) <carol.nichols@gmail.com>", # https://github.com/carols10cents ] repository = "https://github.com/rust-lang/rustlings" license = "MIT" edition = "2021" # On Update: Update the edition of the `rustfmt` command that checks the solutions. rust-version = "1.80" [workspace.dependencies] serde = { version = "1.0.210", features = ["derive"] } toml_edit = { version = "0.22.21", default-features = false, features = ["parse", "serde"] } [package] name = "rustlings" description = "Small exercises to get you used to reading and writing Rust code!" version.workspace = true authors.workspace = true repository.workspace = true license.workspace = true edition.workspace = true rust-version.workspace = true keywords = [ "exercise", "learning", ] include = [ "/src/", "/exercises/", "/solutions/", # A symlink to be able to include `dev/Cargo.toml` although `dev` is excluded. "/dev-Cargo.toml", "/README.md", "/LICENSE", ] [dependencies] ahash = { version = "0.8.11", default-features = false } anyhow = "1.0.89" clap = { version = "4.5.17", features = ["derive"] } crossterm = { version = "0.28.1", default-features = false, features = ["windows", "events"] } notify = { version = "6.1.1", default-features = false, features = ["macos_fsevent"] } os_pipe = "1.2.1" rustlings-macros = { path = "rustlings-macros", version = "=6.3.0" } serde_json = "1.0.128" serde.workspace = true toml_edit.workspace = true [target.'cfg(not(windows))'.dependencies] rustix = { version = "0.38.37", default-features = false, features = ["std", "stdio", "termios"] } [dev-dependencies] tempfile = "3.12.0" [profile.release] panic = "abort" [profile.dev] panic = "abort" [package.metadata.release] pre-release-hook = ["./release-hook.sh"] [workspace.lints.rust] unsafe_code = "forbid" unstable_features = "forbid" [workspace.lints.clippy] empty_loop = "forbid" disallowed-types = "deny" disallowed-methods = "deny" infinite_loop = "deny" mem_forget = "deny" dbg_macro = "warn" todo = "warn" # TODO: Remove after the following fix is released: https://github.com/rust-lang/rust-clippy/pull/13102 needless_option_as_deref = "allow" [lints] workspace = true