From 21e62d84c2d2fa2d5563caf0c0974c2514e56ee5 Mon Sep 17 00:00:00 2001 From: Josh McKinney Date: Sat, 30 Nov 2024 03:14:19 -0800 Subject: [PATCH] chore: Move the demo example to main folder (#1523) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a top level examples folder for more app-ish examples Move the demo example into the top level folder. --------- Co-authored-by: Orhun Parmaksız --- Cargo.lock | 143 +++++++++--------- Cargo.toml | 3 +- examples/README.md | 44 ++++++ examples/apps/demo/Cargo.toml | 25 +++ examples/apps/demo/README.md | 25 +++ .../demo => examples/apps/demo/src}/app.rs | 0 .../apps/demo/src}/crossterm.rs | 0 .../demo => examples/apps/demo/src}/main.rs | 0 .../apps/demo/src}/termion.rs | 0 .../apps/demo/src}/termwiz.rs | 0 .../demo => examples/apps/demo/src}/ui.rs | 0 ratatui/Cargo.toml | 5 - 12 files changed, 169 insertions(+), 76 deletions(-) create mode 100644 examples/README.md create mode 100644 examples/apps/demo/Cargo.toml create mode 100644 examples/apps/demo/README.md rename {ratatui/examples/demo => examples/apps/demo/src}/app.rs (100%) rename {ratatui/examples/demo => examples/apps/demo/src}/crossterm.rs (100%) rename {ratatui/examples/demo => examples/apps/demo/src}/main.rs (100%) rename {ratatui/examples/demo => examples/apps/demo/src}/termion.rs (100%) rename {ratatui/examples/demo => examples/apps/demo/src}/termwiz.rs (100%) rename {ratatui/examples/demo => examples/apps/demo/src}/ui.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 429de647..5d50a93d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,7 +142,7 @@ dependencies = [ "argh_shared", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -162,7 +162,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -281,9 +281,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "camino" @@ -296,9 +296,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -354,9 +354,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" dependencies = [ "shlex", ] @@ -467,7 +467,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -701,7 +701,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -712,7 +712,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -721,6 +721,15 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" +[[package]] +name = "demo" +version = "0.0.0" +dependencies = [ + "argh", + "rand 0.8.5", + "ratatui", +] + [[package]] name = "deranged" version = "0.3.11" @@ -774,7 +783,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -812,12 +821,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -985,7 +994,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -1086,12 +1095,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hermit-abi" version = "0.4.0" @@ -1352,7 +1355,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -1415,7 +1418,7 @@ dependencies = [ "pretty_assertions", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -1434,7 +1437,7 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi 0.4.0", + "hermit-abi", "libc", "windows-sys 0.52.0", ] @@ -1471,10 +1474,11 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1507,9 +1511,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.166" +version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ccc108bbc0b1331bd061864e7cd823c0cab660bbe6970e66e2c0614decde36" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" [[package]] name = "libmath" @@ -1649,11 +1653,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "log", "wasi", @@ -1885,7 +1888,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -1964,7 +1967,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2018,7 +2021,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2047,7 +2050,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2564,7 +2567,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.89", + "syn 2.0.90", "unicode-ident", ] @@ -2752,7 +2755,7 @@ checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2915,14 +2918,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2977,7 +2980,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -2999,9 +3002,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.89" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -3022,7 +3025,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -3133,7 +3136,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -3222,7 +3225,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -3346,7 +3349,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -3361,9 +3364,9 @@ dependencies = [ [[package]] name = "tracing-error" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", "tracing-subscriber", @@ -3382,9 +3385,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -3548,9 +3551,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" dependencies = [ "cfg-if", "once_cell", @@ -3559,24 +3562,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3584,28 +3587,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" dependencies = [ "js-sys", "wasm-bindgen", @@ -3878,7 +3881,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", "synstructure", ] @@ -3900,7 +3903,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] [[package]] @@ -3920,7 +3923,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", "synstructure", ] @@ -3949,5 +3952,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.90", ] diff --git a/Cargo.toml b/Cargo.toml index 6e0207e3..a43f6896 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] resolver = "2" -members = ["ratatui", "ratatui-*", "xtask"] +members = ["ratatui", "ratatui-*", "xtask", "examples/apps/*"] default-members = [ "ratatui", "ratatui-core", @@ -9,6 +9,7 @@ default-members = [ # "ratatui-termion", "ratatui-termwiz", "ratatui-widgets", + "examples/apps/*", ] [workspace.package] diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000..fc8ea4ef --- /dev/null +++ b/examples/README.md @@ -0,0 +1,44 @@ +# Examples + +This folder contains examples that are more app focused. There are also other examples in example +folders under each crate folder e.g. [ratatui examples], [ratatui-widgets examples]. + +[ratatui examples]: ../ratatui/examples +[ratatui-widgets examples]: ../ratatui-widgets/examples + +You can run these examples using: + +```shell +cargo run -p example-name +``` + +This folder might use unreleased code. Consider viewing the examples in the `latest` branch instead +of the `main` branch for code which is guaranteed to work with the released ratatui version. + +> [!WARNING] +> +> There may be backwards incompatible changes in these examples, as they are designed to compile +> against the `main` branch. +> +> There are a few workaround for this problem: +> +> - View the examples as they were when the latest version was release by selecting the tag that +> matches that version. E.g. . +> - If you're viewing this file on GitHub, there is a combo box at the top of this page which +> allows you to select any previous tagged version. +> - To view the code locally, checkout the tag. E.g. `git switch --detach v0.26.1`. +> - Use the latest [alpha version of Ratatui] in your app. These are released weekly on Saturdays. +> - Compile your code against the main branch either locally by adding e.g. `path = "../ratatui"` to +> the dependency, or remotely by adding `git = "https://github.com/ratatui/ratatui"` +> +> For a list of unreleased breaking changes, see [BREAKING-CHANGES.md]. +> +> We don't keep the CHANGELOG updated with unreleased changes, check the git commit history or run +> `git-cliff -u` against a cloned version of this repository. + +## Demo + +This is the original demo example from the main README. It is available for each of the backends. +[Source](./apps/demo/). + +![Demo](https://github.com/ratatui/ratatui/blob/images/examples/demo.gif?raw=true) diff --git a/examples/apps/demo/Cargo.toml b/examples/apps/demo/Cargo.toml new file mode 100644 index 00000000..5505b62c --- /dev/null +++ b/examples/apps/demo/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "demo" +publish = false +authors.workspace = true +documentation.workspace = true +repository.workspace = true +homepage.workspace = true +keywords.workspace = true +categories.workspace = true +readme.workspace = true +license.workspace = true +exclude.workspace = true +edition.workspace = true +rust-version.workspace = true + +[features] +default = ["crossterm"] +crossterm = ["ratatui/crossterm"] +termion = ["ratatui/termion"] +termwiz = ["ratatui/termwiz"] + +[dependencies] +argh = "0.1.12" +rand = "0.8.5" +ratatui.workspace = true diff --git a/examples/apps/demo/README.md b/examples/apps/demo/README.md new file mode 100644 index 00000000..c94f4ec9 --- /dev/null +++ b/examples/apps/demo/README.md @@ -0,0 +1,25 @@ +# Demo example + +This is the original demo that was developed for Tui-rs (the library that Ratatui was forked from). + +![demo.gif](https://github.com/ratatui/ratatui/blob/images/examples/demo.gif?raw=true) + +This example is available for each backend. To run it: + +## crossterm + +```shell +cargo run -p demo +``` + +## termion + +```shell +cargo run -p demo --no-default-features --features termion +``` + +## termwiz + +```shell +cargo run -p demo --no-default-features --features termwiz +``` diff --git a/ratatui/examples/demo/app.rs b/examples/apps/demo/src/app.rs similarity index 100% rename from ratatui/examples/demo/app.rs rename to examples/apps/demo/src/app.rs diff --git a/ratatui/examples/demo/crossterm.rs b/examples/apps/demo/src/crossterm.rs similarity index 100% rename from ratatui/examples/demo/crossterm.rs rename to examples/apps/demo/src/crossterm.rs diff --git a/ratatui/examples/demo/main.rs b/examples/apps/demo/src/main.rs similarity index 100% rename from ratatui/examples/demo/main.rs rename to examples/apps/demo/src/main.rs diff --git a/ratatui/examples/demo/termion.rs b/examples/apps/demo/src/termion.rs similarity index 100% rename from ratatui/examples/demo/termion.rs rename to examples/apps/demo/src/termion.rs diff --git a/ratatui/examples/demo/termwiz.rs b/examples/apps/demo/src/termwiz.rs similarity index 100% rename from ratatui/examples/demo/termwiz.rs rename to examples/apps/demo/src/termwiz.rs diff --git a/ratatui/examples/demo/ui.rs b/examples/apps/demo/src/ui.rs similarity index 100% rename from ratatui/examples/demo/ui.rs rename to examples/apps/demo/src/ui.rs diff --git a/ratatui/Cargo.toml b/ratatui/Cargo.toml index 39860852..cbab7e03 100644 --- a/ratatui/Cargo.toml +++ b/ratatui/Cargo.toml @@ -197,11 +197,6 @@ name = "custom_widget" required-features = ["crossterm"] doc-scrape-examples = true -[[example]] -name = "demo" -# this runs for all of the terminal backends, so it can't be built using --all-features or scraped -doc-scrape-examples = false - [[example]] name = "demo2" required-features = ["crossterm", "palette", "widget-calendar"]