From dcb29567a9570a50fd0536e5cca43d3fdab971f9 Mon Sep 17 00:00:00 2001 From: Stuart Harris Date: Wed, 23 Apr 2025 10:04:07 +0100 Subject: [PATCH] wip docs next --- Cargo.lock | 155 ++++++++++++++++---------- Cargo.toml | 2 +- crux_cli/Cargo.toml | 16 +-- crux_core/Cargo.toml | 2 +- docs/src/SUMMARY.md | 1 + docs/src/getting_started/core_next.md | 138 +++++++++++++++++++++++ examples/bridge_echo/Cargo.lock | 8 +- examples/cat_facts/Cargo.lock | 8 +- examples/counter/Cargo.lock | 8 +- examples/hello_world/Cargo.lock | 8 +- examples/notes/Cargo.lock | 8 +- examples/simple_counter/Cargo.lock | 8 +- 12 files changed, 267 insertions(+), 95 deletions(-) create mode 100644 docs/src/getting_started/core_next.md diff --git a/Cargo.lock b/Cargo.lock index a579ae8e4..47d8ad8e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arrayvec" @@ -297,6 +297,20 @@ dependencies = [ "serde", ] +[[package]] +name = "cargo_metadata" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "cargo_metadata" version = "0.18.1" @@ -367,9 +381,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.35" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" +checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" dependencies = [ "clap_builder", "clap_derive", @@ -377,9 +391,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.35" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" +checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" dependencies = [ "anstream", "anstyle", @@ -407,9 +421,9 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "clone_dyn_types" -version = "0.26.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c23e9c07455288757e5142aaeb0e999f9f34dd2d3c27c9b5f8e3f85f4cb1eda" +checksum = "7546aa32ad2d6e23c47edfc649c1e78e1a30392f51015efe30d0d4a0ed08310e" [[package]] name = "colorchoice" @@ -435,10 +449,18 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "unicode-width 0.2.0", "windows-sys", ] +[[package]] +name = "convert_case" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -447,9 +469,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] @@ -485,16 +507,16 @@ version = "0.1.0" dependencies = [ "anyhow", "ascent", + "camino", + "cargo_metadata 0.15.4", "clap", - "console", + "convert_case", "env_logger", "guppy", "heck 0.5.0", - "ignore", "insta", "iter_tools", "lazy-regex", - "libc", "log", "pretty_assertions", "ramhorns", @@ -774,16 +796,26 @@ dependencies = [ ] [[package]] -name = "env_logger" -version = "0.10.2" +name = "env_filter" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ - "humantime", - "is-terminal", "log", "regex", - "termcolor", +] + +[[package]] +name = "env_logger" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", ] [[package]] @@ -1145,12 +1177,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" - [[package]] name = "http" version = "1.3.1" @@ -1182,12 +1208,6 @@ dependencies = [ "url", ] -[[package]] -name = "humantime" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" - [[package]] name = "iana-time-zone" version = "0.1.63" @@ -1435,17 +1455,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "is-terminal" -version = "0.4.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1454,9 +1463,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "iter_tools" -version = "0.24.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a92afdf43693047a6079d379c88064970968bd6552a10f45c135a1c29e1094" +checksum = "e96d3cdcfec21b319c0dec1d0760a6f25f44b49d273cc7bc70f7444a0c253eb1" dependencies = [ "clone_dyn_types", "itertools 0.11.0", @@ -1495,6 +1504,30 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a064218214dc6a10fbae5ec5fa888d80c45d611aba169222fc272072bf7aef6" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "199b7932d97e325aff3a7030e141eafe7f2c6268e1d1b24859b753a627f45254" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "js-sys" version = "0.3.77" @@ -1770,6 +1803,21 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "ppv-lite86" version = "0.2.21" @@ -2462,15 +2510,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "termtree" version = "0.5.1" @@ -2484,7 +2523,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd05616119e612a8041ef58f2b578906cc2531a6069047ae092cfb86a325d835" dependencies = [ "smawk", - "unicode-width 0.1.14", + "unicode-width", ] [[package]] @@ -2633,12 +2672,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" -[[package]] -name = "unicode-width" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" - [[package]] name = "url" version = "2.5.4" diff --git a/Cargo.toml b/Cargo.toml index e9fbe3db9..f9244ad05 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ keywords = ["crux", "crux_core", "cross-platform-ui", "ffi", "wasm"] rust-version = "1.80" [workspace.dependencies] -anyhow = "1.0.97" +anyhow = "1.0.98" serde = "1.0.219" [workspace.lints.rust] diff --git a/crux_cli/Cargo.toml b/crux_cli/Cargo.toml index 1016d281b..d6f2c66b4 100644 --- a/crux_cli/Cargo.toml +++ b/crux_cli/Cargo.toml @@ -15,17 +15,17 @@ path = "src/main.rs" [dependencies] anyhow.workspace = true -clap = { version = "4.5.35", features = ["derive"] } ascent = "0.8.0" -console = "0.15.11" -env_logger = "0.10.2" -guppy = "0.17.4" +camino = "1.1.9" +cargo_metadata = "=0.15" +clap = { version = "4.5.37", features = ["derive"] } +convert_case = "0.8.0" +env_logger = "0.11.8" +guppy = "0.17.17" heck = "0.5.0" -ignore = "0.4.23" -iter_tools = "0.24.0" +iter_tools = "0.29.0" lazy-regex = "3.4.1" -libc = "0.2.171" -log = "0.4.26" +log = "0.4.27" ramhorns = "1.0.1" rustdoc-json = "0.9.5" rustdoc-types = "0.38.0" diff --git a/crux_core/Cargo.toml b/crux_core/Cargo.toml index da71ef827..88fc7d126 100644 --- a/crux_core/Cargo.toml +++ b/crux_core/Cargo.toml @@ -19,7 +19,7 @@ all-features = true [dependencies] anyhow.workspace = true bincode = "=1.3.3" -crossbeam-channel = "0.5.14" +crossbeam-channel = "0.5.15" crux_macros = { version = "0.6.0", path = "../crux_macros" } erased-serde = "0.4" futures = "0.3.31" diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 7b6341e4d..ab0684284 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -7,6 +7,7 @@ # Getting Started 1. [Shared core and types](./getting_started/core.md) +1. [Shared core and types (next)](./getting_started/core_next.md) 1. [iOS](./getting_started/iOS/index.md) 1. [Swift and SwiftUI (XcodeGen)](./getting_started/iOS/with_xcodegen.md) 1. [Swift and SwiftUI (manual)](./getting_started/iOS/manual.md) diff --git a/docs/src/getting_started/core_next.md b/docs/src/getting_started/core_next.md new file mode 100644 index 000000000..1ad23f0eb --- /dev/null +++ b/docs/src/getting_started/core_next.md @@ -0,0 +1,138 @@ +# Shared core (next) + +Every Crux app has a library, written in Rust, which contains the _behavior_ of the app — the shared logic and +types. This library is often referred to as the "core" and is shared with each of the "shells" (which are written in +other languages such as Swift, Kotlin, and TypeScript). This page provides an overview of the core library and how +to set it up. + +```admonish +The snippets on this page are taken from the +[`counter-next` example](https://github.com/redbadger/crux/tree/master/examples/counter-next), +which are a little bit more complex than the +[`simple_counter`](https://github.com/redbadger/crux/tree/master/examples/simple_counter) +example. When the latter has been updated, we'll switch to using that instead. +``` + +### Create the core crate + +You can call the core whatever you like, but we have chosen the name `shared` here. +You can create the shared Rust library, like this: + +```sh +cargo new --lib shared +``` + +### The workspace manifest + +We'll be adding other folders into our monorepo, so we are choosing to use Cargo Workspaces. +Edit the workspace `/Cargo.toml` file, at the repository root, to add the new library to our workspace. +It should look something like this: + +```toml +# /Cargo.toml +[workspace] +members = ["shared"] +resolver = "2" + +[workspace.package] +authors = ["Red Badger Consulting Limited"] +edition = "2021" +repository = "https://github.com/redbadger/crux/" +license = "Apache-2.0" +keywords = ["crux", "crux_core", "cross-platform-ui", "ffi", "wasm"] +rust-version = "1.80" + +[workspace.dependencies] +anyhow = "1.0.98" +crux_core = "0.14.0" +crux_http = "0.13.0" +serde = "1.0.219" +``` + +### The shared library manifest + +The library's manifest, at `/shared/Cargo.toml`, should look something like the +following, but there are a few things to note: + +- the `crate-type` + - `lib` is the default rust library when linking into a rust binary, e.g. in + a `web-leptos`, or `cli`, variant + - `staticlib` is a static library (`libshared.a`) for including in a Swift + iOS app variant + - `cdylib` is a C-ABI dynamic library (`libshared.so`) for use with JNA when + included in a Kotlin Android app variant +- we also declare a binary called `crux_cli` that we will use to generate foreign + types and bindings. We include it in our shared library by adding a file at + `src/bin/crux_cli.rs` (see below) that allows us to build the tool at the + right version. +- we add a feature called `cli` that allows us to build the `crux_cli` binary with + the `cli` feature from `crux_core` without having to include that code in our + shared library. +- to support the bindings, we add either 'uniffi' or 'wasm-bindgen' depending + on the platform that we are building for. The version of `uniffi` is important + because it must match the version of `uniffi-bindgen` used to generate the + bindings. If the versions do not match, we will get a helpful compile error. + +```toml +# /shared/Cargo.toml +{{#include ../../../examples/counter-next/shared/Cargo.toml}} +``` + +Ok, let's add the `crux_cli` binary to our shared library by adding a file at +`src/bin/crux_cli.rs` that allows us to build the tool at the +right version: + +```rust,no_run,noplayground +// /shared/src/bin/crux_cli.rs +{{#include ../../../examples/counter-next/shared/src/bin/crux_cli.rs}} +``` + +There's one last thing we need to do and that is to configure the bindings. We need to add a +file at `/shared/uniffi.toml`: + +```toml +# /shared/uniffi.toml +{{#include ../../../examples/counter-next/shared/uniffi.toml}} +``` + +### The app + +Now we are in a position to create a basic app in `/shared/src/app.rs`. This is +from the +[`counter-next` example](https://github.com/redbadger/crux/blob/master/examples/counter-next/shared/src/counter.rs) +(which also has tests, although we're not showing them here). + +```rust,no_run,noplayground +// /shared/src/app.rs +{{#include ../../../examples/counter-next/shared/src/app.rs:app}} +``` + +```admonish note title="Note the #[effect] macro" +The [`#[effect]`](https://docs.rs/crux_macros/latest/crux_macros/macro.effect.html) macro can be used to annotate an enum to represent our effects. The enum has a variant for each effect, which carries the [`Operation`](https://docs.rs/crux_core/latest/crux_core/capability/trait.Operation.html) type. + +The real effect type generated by the macro is a little more complicated, with some plumbing to support the foreign function interface into Swift, Kotlin and other languages. You can read more about the effect system in the [Managed Effects](../guide/effects.md) chapter of the guide. +``` + +```admonish note title="Note the #[bridge] macro" +The [`#[bridge]`](https://docs.rs/crux_macros/latest/crux_macros/macro.bridge.html) macro generates the scaffolding +for the bridge between the Rust and Swift/Kotlin/TypeScript codebases. It creates the necessary glue code (with the +help of `uniffi` or `wasm-bindgen`) to allow the "core" and the "shell" to communicate with each other. + +If you have only Rust shells, you can just `[#derive(Default)]`, otherwise place this macro on the struct that +implements the `App` trait (and which represents the root of your app hierarchy). +``` + +```admonish warning title="The Capabilities associated type" +The `Capabilities` associated type in the code above is an artifact of a migration of the effect API from +previous versions of Crux. You can use the unit type `()` and everything will work fine. We will +eventually remove this type and the last argument to the `update` function. + +If you've got an existing app or you're simply curious about what this looked like before, you can read about it +at the end of the [Managed Effects](../guide/effects.md) chapter of the guide. +``` + +Make sure everything builds OK + +```sh +cargo build +``` diff --git a/examples/bridge_echo/Cargo.lock b/examples/bridge_echo/Cargo.lock index ae6790d3d..9ad648e14 100644 --- a/examples/bridge_echo/Cargo.lock +++ b/examples/bridge_echo/Cargo.lock @@ -45,9 +45,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "async-lock" @@ -358,9 +358,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] diff --git a/examples/cat_facts/Cargo.lock b/examples/cat_facts/Cargo.lock index 46bbbd0ba..8ea1efbbb 100644 --- a/examples/cat_facts/Cargo.lock +++ b/examples/cat_facts/Cargo.lock @@ -93,9 +93,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "anymap2" @@ -366,9 +366,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] diff --git a/examples/counter/Cargo.lock b/examples/counter/Cargo.lock index 44002fe12..b38e0f67a 100644 --- a/examples/counter/Cargo.lock +++ b/examples/counter/Cargo.lock @@ -119,9 +119,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "anymap2" @@ -969,9 +969,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] diff --git a/examples/hello_world/Cargo.lock b/examples/hello_world/Cargo.lock index a9a8ffe2a..51d946249 100644 --- a/examples/hello_world/Cargo.lock +++ b/examples/hello_world/Cargo.lock @@ -10,9 +10,9 @@ checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "autocfg" @@ -129,9 +129,9 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] diff --git a/examples/notes/Cargo.lock b/examples/notes/Cargo.lock index b24de5d63..b23d103a9 100644 --- a/examples/notes/Cargo.lock +++ b/examples/notes/Cargo.lock @@ -16,9 +16,9 @@ checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "autocfg" @@ -197,9 +197,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] diff --git a/examples/simple_counter/Cargo.lock b/examples/simple_counter/Cargo.lock index 8b09bb8de..df963be5d 100644 --- a/examples/simple_counter/Cargo.lock +++ b/examples/simple_counter/Cargo.lock @@ -45,9 +45,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "anymap2" @@ -420,9 +420,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ]