From 17f5e33be9598fb9d5e9bf09a812a1fc7ed35a98 Mon Sep 17 00:00:00 2001 From: Matt Johnston <matt@ucc.asn.au> Date: Tue, 15 Aug 2023 23:35:17 +0800 Subject: [PATCH] Bump embassy version Required updating embedded-io-async too --- Cargo.lock | 118 ++++++++++++++++----------- Cargo.toml | 35 ++++---- async/Cargo.toml | 4 +- async/examples/serv1.rs | 2 +- async/examples/sunsetc.rs | 2 +- async/src/cmdline_client.rs | 2 +- embassy/Cargo.toml | 2 +- embassy/demos/common/Cargo.toml | 4 +- embassy/demos/common/src/server.rs | 4 +- embassy/demos/picow/Cargo.toml | 2 +- embassy/demos/picow/src/main.rs | 12 ++- embassy/demos/picow/src/picowmenu.rs | 14 ++-- embassy/demos/picow/src/takepipe.rs | 18 ++-- embassy/demos/picow/src/usbserial.rs | 12 +-- embassy/demos/std/Cargo.toml | 2 +- embassy/demos/std/src/main.rs | 2 +- embassy/src/client.rs | 6 +- embassy/src/embassy_channel.rs | 22 ++--- embassy/src/embassy_sunset.rs | 24 +++--- embassy/src/server.rs | 6 +- src/error.rs | 10 +++ 21 files changed, 168 insertions(+), 135 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4561745..4b52792 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -564,7 +564,7 @@ dependencies = [ [[package]] name = "cyw43" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "atomic-polyfill 0.1.11", "cortex-m", @@ -572,7 +572,7 @@ dependencies = [ "defmt", "embassy-futures", "embassy-net-driver-channel", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed)", "embassy-time", "embedded-hal 1.0.0-alpha.11", "futures", @@ -582,7 +582,7 @@ dependencies = [ [[package]] name = "cyw43-pio" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "cyw43", "embassy-rp", @@ -859,10 +859,10 @@ dependencies = [ [[package]] name = "embassy-embedded-hal" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "embassy-futures", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed)", "embassy-time", "embedded-hal 0.2.7", "embedded-hal 1.0.0-alpha.11", @@ -890,8 +890,8 @@ dependencies = [ [[package]] name = "embassy-executor" -version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +version = "0.2.1" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "atomic-polyfill 1.0.2", "cortex-m", @@ -906,12 +906,12 @@ dependencies = [ [[package]] name = "embassy-futures" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" [[package]] name = "embassy-hal-internal" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "cortex-m", "critical-section 1.1.1", @@ -934,7 +934,7 @@ dependencies = [ [[package]] name = "embassy-macros" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "darling 0.20.1", "proc-macro2", @@ -945,15 +945,15 @@ dependencies = [ [[package]] name = "embassy-net" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "as-slice 0.2.1", "atomic-polyfill 1.0.2", "atomic-pool", "embassy-net-driver", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed)", "embassy-time", - "embedded-io", + "embedded-io-async", "embedded-nal-async", "futures", "generic-array 0.14.7", @@ -967,22 +967,22 @@ dependencies = [ [[package]] name = "embassy-net-driver" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" [[package]] name = "embassy-net-driver-channel" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "embassy-futures", "embassy-net-driver", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed)", ] [[package]] name = "embassy-net-tuntap" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "async-io", "embassy-net-driver", @@ -993,7 +993,7 @@ dependencies = [ [[package]] name = "embassy-net-w5500" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "embassy-futures", "embassy-net-driver-channel", @@ -1005,7 +1005,7 @@ dependencies = [ [[package]] name = "embassy-rp" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "atomic-polyfill 1.0.2", "cfg-if", @@ -1016,14 +1016,15 @@ dependencies = [ "embassy-embedded-hal", "embassy-futures", "embassy-hal-internal", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed)", "embassy-time", "embassy-usb-driver", "embedded-hal 0.2.7", "embedded-hal 1.0.0-alpha.11", "embedded-hal-async", "embedded-hal-nb", - "embedded-io", + "embedded-io 0.5.0", + "embedded-io-async", "embedded-storage", "embedded-storage-async", "fixed", @@ -1045,7 +1046,7 @@ checksum = "a0dad296a6f70bfdc32ef52442a31f98c28e1608893c1cecc9b6f419bab005a0" dependencies = [ "cfg-if", "critical-section 1.1.1", - "embedded-io", + "embedded-io 0.4.0", "futures-util", "heapless", ] @@ -1053,11 +1054,10 @@ dependencies = [ [[package]] name = "embassy-sync" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "cfg-if", "critical-section 1.1.1", - "embedded-io", "futures-util", "heapless", ] @@ -1065,7 +1065,7 @@ dependencies = [ [[package]] name = "embassy-time" version = "0.1.2" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "atomic-polyfill 1.0.2", "cfg-if", @@ -1082,11 +1082,11 @@ dependencies = [ [[package]] name = "embassy-usb" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "embassy-futures", "embassy-net-driver-channel", - "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4)", + "embassy-sync 0.2.0 (git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed)", "embassy-usb-driver", "heapless", "ssmarshal", @@ -1096,7 +1096,7 @@ dependencies = [ [[package]] name = "embassy-usb-driver" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy/?rev=4d60c715e683aaadf25d9f066bde805c725fefb4#4d60c715e683aaadf25d9f066bde805c725fefb4" +source = "git+https://github.com/embassy-rs/embassy/?rev=b6b44480457d272aace977e885d5dba252fd2bed#b6b44480457d272aace977e885d5dba252fd2bed" dependencies = [ "defmt", ] @@ -1141,33 +1141,58 @@ name = "embedded-io" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bbadc628dc286b9ae02f0cb0f5411c056eb7487b72f0083203f115de94060" dependencies = [ "defmt", - "futures", +] + +[[package]] +name = "embedded-io-adapters" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8bf42b1ca6e49e960826782e3fb2721b8dac84317790b66d832fa8512edba1" +dependencies = [ + "embedded-io 0.5.0", + "embedded-io-async", "tokio", ] +[[package]] +name = "embedded-io-async" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1394754ad749a560b25a0c70dcd2b66a450824a1311fc475bb2ccbfabe7f8414" +dependencies = [ + "defmt", + "embedded-io 0.5.0", +] + [[package]] name = "embedded-nal" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db9efecb57ab54fa918730f2874d7d37647169c50fa1357fecb81abee840b113" +checksum = "447416d161ba378782c13e82b11b267d6d2104b4913679a7c5640e7e94f96ea7" dependencies = [ "heapless", "nb 1.1.0", - "no-std-net 0.5.0", + "no-std-net", ] [[package]] name = "embedded-nal-async" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27ce84f518ca912777ec143db235f4d615e3bf8d4e46d507d6ef12daf5b1df98" +checksum = "e706b5288eceaa582155b24d54e23385429402e4e99ae984f4a0a6a65b635f15" dependencies = [ - "embedded-io", + "embedded-io-async", "embedded-nal", "heapless", - "no-std-net 0.6.0", + "no-std-net", ] [[package]] @@ -1774,12 +1799,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "no-std-net" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bcece43b12349917e096cddfa66107277f123e6c96a5aea78711dc601a47152" - [[package]] name = "no-std-net" version = "0.6.0" @@ -2721,7 +2740,7 @@ dependencies = [ "defmt", "digest 0.10.7", "ed25519-dalek 2.0.0-rc.3", - "embedded-io", + "embedded-io 0.5.0", "futures", "getrandom 0.2.10", "heapless", @@ -2750,7 +2769,8 @@ dependencies = [ "argh", "embassy-futures", "embassy-sync 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "embedded-io", + "embedded-io-adapters", + "embedded-io-async", "futures", "heapless", "libc", @@ -2781,7 +2801,7 @@ dependencies = [ "embassy-net-driver", "embassy-sync 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "embassy-time", - "embedded-io", + "embedded-io-async", "heapless", "hmac", "log", @@ -2805,7 +2825,7 @@ dependencies = [ "cyw43-pio", "defmt", "defmt-rtt", - "embassy-executor 0.2.0", + "embassy-executor 0.2.1", "embassy-futures", "embassy-net", "embassy-net-driver", @@ -2817,7 +2837,7 @@ dependencies = [ "embassy-usb-driver", "embedded-hal 1.0.0-alpha.11", "embedded-hal-async", - "embedded-io", + "embedded-io-async", "futures", "getrandom 0.2.10", "heapless", @@ -2849,7 +2869,7 @@ dependencies = [ "embassy-net-tuntap", "embassy-sync 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "embassy-time", - "embedded-io", + "embedded-io-async", "env_logger", "heapless", "libc", @@ -2870,7 +2890,7 @@ dependencies = [ "defmt", "embassy-futures", "embassy-sync 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "embedded-io", + "embedded-io-async", "log", "pin-utils", "sunset", diff --git a/Cargo.toml b/Cargo.toml index fa8b5d6..20bc9e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,7 +53,7 @@ rsa = { version = "0.8", default-features = false, optional = true, features = [ # TODO: getrandom feature is a workaround for missing ssh-key dependency with rsa. fixed in pending 0.6 ssh-key = { version = "0.5", default-features = false, optional = true, features = ["getrandom"] } -embedded-io = { version = "0.4", optional = true } +embedded-io = { version = "0.5", optional = true } # for debug printing pretty-hex = { version = "0.3", default-features = false } @@ -88,21 +88,26 @@ x25519-dalek = { git = "https://github.com/mkj/curve25519-dalek", branch = "suns # ed25519-dalek = { path = "/home/matt/3rd/rs/crypto/curve25519-dalek/ed25519-dalek" } # x25519-dalek = { path = "/home/matt/3rd/rs/crypto/curve25519-dalek/x25519-dalek" } -embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-usb = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-usb-driver = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-usb = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-usb-driver = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } # for cyw43 -embassy-net = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-net-driver = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-net-tuntap = { git = "https://github.com/embassy-rs/embassy", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } - -cyw43 = { git = "https://github.com/embassy-rs/embassy/", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -cyw43-pio = { git = "https://github.com/embassy-rs/embassy/", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } -embassy-net-w5500 = { git = "https://github.com/embassy-rs/embassy/", rev = "4d60c715e683aaadf25d9f066bde805c725fefb4" } +embassy-net = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-net-driver = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-net-tuntap = { git = "https://github.com/embassy-rs/embassy", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } + +cyw43 = { git = "https://github.com/embassy-rs/embassy/", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +cyw43-pio = { git = "https://github.com/embassy-rs/embassy/", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } +embassy-net-w5500 = { git = "https://github.com/embassy-rs/embassy/", rev = "b6b44480457d272aace977e885d5dba252fd2bed" } + +# embassy-net = { path = "/home/matt/3rd/rs/embassy/embassy-net" } +# embassy-net-driver = { path = "/home/matt/3rd/rs/embassy/embassy-net-driver" } +# embassy-net-driver-channel = { path = "/home/matt/3rd/rs/embassy/embassy-net-driver-channel" } +# embassy-net-tuntap = { path = "/home/matt/3rd/rs/embassy/embassy-net-tuntap" } # these are mostly applicable to picow, but can't hurt generally [profile.dev] diff --git a/async/Cargo.toml b/async/Cargo.toml index 9f96ac9..e17a285 100644 --- a/async/Cargo.toml +++ b/async/Cargo.toml @@ -21,7 +21,7 @@ embassy-futures = { version = "0.1.0" } # async feature requires nightly for async fn in trait # https://github.com/rust-lang/rust/issues/91611 -embedded-io = { version = "0.4", features = ["async"] } +embedded-io-async = "0.5" # "net" for AsyncFd on unix tokio = { version = "1.25", features = ["net", "io-util", "signal"] } @@ -49,7 +49,7 @@ zeroize = "1.5" tokio = { version = "1.17", features = ["full"] } # adapters for tokio and async-std -embedded-io = { version = "0.4", features = ["tokio"] } +embedded-io-adapters = { version = "0.5", features = ["tokio-1"] } simplelog = "0.12" # for simplelog diff --git a/async/examples/serv1.rs b/async/examples/serv1.rs index a9b8a45..f257f63 100644 --- a/async/examples/serv1.rs +++ b/async/examples/serv1.rs @@ -18,7 +18,7 @@ use tokio::sync::oneshot; use tokio::runtime::Runtime; use tokio::task::spawn_local; -use embedded_io::adapters::FromTokio; +use embedded_io_adapters::tokio_1::FromTokio; use sunset::*; use sunset_embassy::SSHServer; diff --git a/async/examples/sunsetc.rs b/async/examples/sunsetc.rs index 2c2e549..698c86b 100644 --- a/async/examples/sunsetc.rs +++ b/async/examples/sunsetc.rs @@ -17,7 +17,7 @@ use sunset_embassy::{SSHClient, SunsetRawMutex}; use sunset_async::{CmdlineClient, AgentClient}; -use embedded_io::adapters::FromTokio; +use embedded_io_adapters::tokio_1::FromTokio; use zeroize::Zeroizing; diff --git a/async/src/cmdline_client.rs b/async/src/cmdline_client.rs index 045a66f..faf666d 100644 --- a/async/src/cmdline_client.rs +++ b/async/src/cmdline_client.rs @@ -14,7 +14,7 @@ use sunset_embassy::*; use std::collections::VecDeque; use embassy_sync::channel::{Channel, Sender, Receiver}; use embassy_sync::signal::Signal; -use embedded_io::asynch::{Read as _, Write as _}; +use embedded_io_async::{Read as _, Write as _}; use tokio::io::AsyncReadExt; use tokio::io::AsyncWriteExt; diff --git a/embassy/Cargo.toml b/embassy/Cargo.toml index b3f4709..155f2ee 100644 --- a/embassy/Cargo.toml +++ b/embassy/Cargo.toml @@ -9,7 +9,7 @@ license = "0BSD" [dependencies] embassy-sync = { version = "0.2.0" } embassy-futures = { version = "0.1.0" } -embedded-io = { version = "0.4", features = ["async"] } +embedded-io-async = "0.5" atomic-polyfill = "1.0" pin-utils = { version = "0.1" } diff --git a/embassy/demos/common/Cargo.toml b/embassy/demos/common/Cargo.toml index 393d345..f52c06e 100644 --- a/embassy/demos/common/Cargo.toml +++ b/embassy/demos/common/Cargo.toml @@ -18,7 +18,7 @@ embassy-time = { version = "0.1" } heapless = "0.7.15" # using local fork # menu = "0.3" -embedded-io = { version = "0.4", features = ["async"] } +embedded-io-async = "0.5" sha2 = { version = "0.10", default-features = false } hmac = { version = "0.12", default-features = false } bcrypt = { version = "0.15", default-features = false } @@ -29,5 +29,5 @@ log = "0.4" pretty-hex = { version = "0.3", default-features = false } [features] -defmt = ["dep:defmt", "embedded-io/defmt"] +defmt = ["dep:defmt", "embedded-io-async/defmt-03"] log = ["embassy-net/log"] diff --git a/embassy/demos/common/src/server.rs b/embassy/demos/common/src/server.rs index 9fdcca9..725d13b 100644 --- a/embassy/demos/common/src/server.rs +++ b/embassy/demos/common/src/server.rs @@ -17,7 +17,7 @@ use embassy_net_driver::Driver; use embassy_futures::select::{select, Either}; use embassy_time::{Duration, Timer}; -use embedded_io::asynch; +use embedded_io_async::Write; use heapless::String; @@ -263,7 +263,7 @@ pub struct BufOutput { impl BufOutput { pub async fn flush<W>(&mut self, w: &mut W) -> Result<()> - where W: asynch::Write + embedded_io::Io<Error = sunset::Error> + where W: Write<Error = sunset::Error> { let mut b = self.s.as_str().as_bytes(); while b.len() > 0 { diff --git a/embassy/demos/picow/Cargo.toml b/embassy/demos/picow/Cargo.toml index e14efbe..3240602 100644 --- a/embassy/demos/picow/Cargo.toml +++ b/embassy/demos/picow/Cargo.toml @@ -43,7 +43,7 @@ cortex-m-rt = "0.7.0" embedded-hal-1 = { package = "embedded-hal", version = "1.0.0-alpha.11" } embedded-hal-async = { version = "0.2.0-alpha.1" } -embedded-io = { version = "0.4", features = ["async", "defmt"] } +embedded-io-async = "0.5" heapless = "0.7.15" getrandom = { version = "0.2", default-features = false, features = ["custom"]} diff --git a/embassy/demos/picow/src/main.rs b/embassy/demos/picow/src/main.rs index b32fad1..b657ac3 100644 --- a/embassy/demos/picow/src/main.rs +++ b/embassy/demos/picow/src/main.rs @@ -17,8 +17,7 @@ use {defmt_rtt as _, panic_probe as _}; use embassy_executor::Spawner; use embassy_futures::select::select; use embassy_net::{Stack, HardwareAddress, EthernetAddress}; -use embedded_io::asynch::Write as _; -use embedded_io::{asynch, Io}; +use embedded_io_async::{Write, Read}; use heapless::{String, Vec}; @@ -27,7 +26,6 @@ use static_cell::StaticCell; use demo_common::menu::Runner as MenuRunner; use embassy_sync::blocking_mutex::raw::NoopRawMutex; use embassy_sync::signal::Signal; -use embedded_io::asynch::Read; use sunset::*; use sunset_embassy::{SSHServer, SunsetMutex}; @@ -203,8 +201,8 @@ async fn menu<R, W>( state: &'static GlobalState, ) -> Result<()> where - R: asynch::Read + Io<Error = sunset::Error>, - W: asynch::Write + Io<Error = sunset::Error>, + R: Read<Error = sunset::Error>, + W: Write<Error = sunset::Error>, { let mut menu_buf = [0u8; 64]; let menu_ctx = picowmenu::MenuCtx::new(state, local); @@ -251,8 +249,8 @@ pub(crate) async fn serial<R, W>( serial_pipe: &'static TakePipe<'static>, ) -> Result<()> where - R: asynch::Read + Io<Error = sunset::Error>, - W: asynch::Write + Io<Error = sunset::Error>, + R: Read<Error = sunset::Error>, + W: Write<Error = sunset::Error>, { info!("start serial"); let (mut rx, mut tx) = serial_pipe.take().await; diff --git a/embassy/demos/picow/src/picowmenu.rs b/embassy/demos/picow/src/picowmenu.rs index 53b301f..1e498cb 100644 --- a/embassy/demos/picow/src/picowmenu.rs +++ b/embassy/demos/picow/src/picowmenu.rs @@ -9,13 +9,13 @@ pub use log::{debug, error, info, log, trace, warn}; #[cfg(feature = "defmt")] pub use defmt::{debug, error, info, panic, trace, warn}; -use core::fmt::{Write, Debug, Display}; +use core::fmt::{Write as _, Debug, Display}; use core::future::{poll_fn, Future}; use core::ops::DerefMut; use core::sync::atomic::Ordering::{Relaxed, SeqCst}; use core::str::FromStr; -use embedded_io::{asynch, Io}; +use embedded_io_async::{Write as AsyncWrite, Read as AsyncRead, ErrorType}; use embassy_sync::waitqueue::MultiWakerRegistration; use embassy_time::Duration; @@ -99,8 +99,8 @@ impl MenuCtx { mut chanw: &mut W, ) -> Result<bool> where - R: asynch::Read + Io<Error = sunset::Error>, - W: asynch::Write + Io<Error = sunset::Error>, + R: AsyncRead<Error = sunset::Error>, + W: AsyncWrite<Error = sunset::Error>, { if self.switch_usb1 { self.switch_usb1 = false; @@ -527,7 +527,7 @@ fn endis(v: bool) -> &'static str { } } -fn prkey(context: &mut dyn Write, name: &str, k: &Option<Ed25519PubKey>) { +fn prkey(context: &mut dyn core::fmt::Write, name: &str, k: &Option<Ed25519PubKey>) { if let Some(k) = k { let _ = writeln!(context, "{} ed25519 todo", name); } else { @@ -779,8 +779,8 @@ fn do_net_static(_item: &Item<MenuCtx>, args: &[&str], context: &mut MenuCtx) { // Returns an error on EOF etc. pub(crate) async fn request_pw<E>( - tx: &mut impl asynch::Write<Error = E>, - rx: &mut impl asynch::Read<Error = E>, + tx: &mut impl AsyncWrite<Error = E>, + rx: &mut impl AsyncRead<Error = E>, ) -> Result<String<MAX_PW_LEN>, ()> { tx.write_all(b"\r\nEnter Password: ").await.map_err(|_| ())?; let mut pw = Vec::<u8, MAX_PW_LEN>::new(); diff --git a/embassy/demos/picow/src/takepipe.rs b/embassy/demos/picow/src/takepipe.rs index c5011ef..79c126d 100644 --- a/embassy/demos/picow/src/takepipe.rs +++ b/embassy/demos/picow/src/takepipe.rs @@ -10,7 +10,7 @@ pub use defmt::{debug, info, warn, panic, error, trace}; use core::ops::DerefMut; -use embedded_io::{asynch, Io}; +use embedded_io_async::{Write, Read, ErrorType}; use embassy_sync::{pipe, mutex::Mutex, signal::Signal}; use embassy_sync::pipe::Pipe; @@ -123,25 +123,25 @@ pub(crate) struct TakePipeWrite<'a> { pipe: &'a TakePipeStorage, } -impl<'a> asynch::Read for TakePipeRead<'a> { +impl<'a> Read for TakePipeRead<'a> { async fn read(&mut self, buf: &mut [u8]) -> sunset::Result<usize> { let r = self.pipe.fanin.read(buf).await; Ok(r) } } -impl<'a> asynch::Write for TakePipeWrite<'a> { +impl<'a> Write for TakePipeWrite<'a> { async fn write(&mut self, buf: &[u8]) -> sunset::Result<usize> { let r = self.pipe.fanout.write(buf).await; Ok(r) } } -impl Io for TakePipeRead<'_> { +impl ErrorType for TakePipeRead<'_> { type Error = sunset::Error; } -impl Io for TakePipeWrite<'_> { +impl ErrorType for TakePipeWrite<'_> { type Error = sunset::Error; } @@ -151,7 +151,7 @@ pub(crate) struct TakeRead<'a> { counter: u64, } -impl asynch::Read for TakeRead<'_> { +impl Read for TakeRead<'_> { async fn read(&mut self, buf: &mut [u8]) -> sunset::Result<usize> { let p = self.shared.ok_or(sunset::Error::ChannelEOF)?; @@ -182,7 +182,7 @@ impl asynch::Read for TakeRead<'_> { } } -impl Io for TakeRead<'_> { +impl ErrorType for TakeRead<'_> { type Error = sunset::Error; } @@ -192,7 +192,7 @@ pub(crate) struct TakeWrite<'a> { counter: u64, } -impl asynch::Write for TakeWrite<'_> { +impl Write for TakeWrite<'_> { async fn write(&mut self, buf: &[u8]) -> sunset::Result<usize> { let p = self.shared.ok_or(sunset::Error::ChannelEOF)?; @@ -222,6 +222,6 @@ impl asynch::Write for TakeWrite<'_> { } } -impl Io for TakeWrite<'_> { +impl ErrorType for TakeWrite<'_> { type Error = sunset::Error; } diff --git a/embassy/demos/picow/src/usbserial.rs b/embassy/demos/picow/src/usbserial.rs index f4fa29a..86bdad7 100644 --- a/embassy/demos/picow/src/usbserial.rs +++ b/embassy/demos/picow/src/usbserial.rs @@ -14,7 +14,7 @@ use embassy_usb::class::cdc_acm::{self, CdcAcmClass, State}; use embassy_usb::Builder; use embassy_usb_driver::Driver; -use embedded_io::{asynch, Io, asynch::BufRead}; +use embedded_io_async::{Read, Write, BufRead, ErrorType}; use sunset_embassy::*; @@ -153,7 +153,7 @@ impl<'a, 'p, D: Driver<'a>> CDCRead<'a, 'p, D> { } } -impl<'a, D: Driver<'a>> asynch::Read for CDCRead<'a, '_, D> { +impl<'a, D: Driver<'a>> Read for CDCRead<'a, '_, D> { async fn read(&mut self, ret: &mut [u8]) -> sunset::Result<usize> { debug_assert!(self.start < self.end || self.end == 0); @@ -175,7 +175,7 @@ impl<'a, D: Driver<'a>> asynch::Read for CDCRead<'a, '_, D> { } } -impl<'a, D: Driver<'a>> asynch::BufRead for CDCRead<'a, '_, D> { +impl<'a, D: Driver<'a>> BufRead for CDCRead<'a, '_, D> { async fn fill_buf(&mut self) -> sunset::Result<&[u8]> { debug_assert!(self.start < self.end || self.end == 0); @@ -207,7 +207,7 @@ impl<'a, D: Driver<'a>> asynch::BufRead for CDCRead<'a, '_, D> { } } -impl<'a, D: Driver<'a>> Io for CDCRead<'a, '_, D> { +impl<'a, D: Driver<'a>> ErrorType for CDCRead<'a, '_, D> { type Error = sunset::Error; } @@ -219,7 +219,7 @@ impl<'a, 'p, D: Driver<'a>> CDCWrite<'a, 'p, D> { } } -impl<'a, D: Driver<'a>> asynch::Write for CDCWrite<'a, '_, D> { +impl<'a, D: Driver<'a>> Write for CDCWrite<'a, '_, D> { async fn write(&mut self, buf: &[u8]) -> sunset::Result<usize> { // limit to 63 so we can ignore dealing with ZLPs for now let b = &buf[..buf.len().min(63)]; @@ -228,6 +228,6 @@ impl<'a, D: Driver<'a>> asynch::Write for CDCWrite<'a, '_, D> { } } -impl<'a, D: Driver<'a>> Io for CDCWrite<'a, '_, D> { +impl<'a, D: Driver<'a>> ErrorType for CDCWrite<'a, '_, D> { type Error = sunset::Error; } diff --git a/embassy/demos/std/Cargo.toml b/embassy/demos/std/Cargo.toml index bd6393f..797640c 100644 --- a/embassy/demos/std/Cargo.toml +++ b/embassy/demos/std/Cargo.toml @@ -17,7 +17,7 @@ static_cell = "1.0" log = { version = "0.4" } env_logger = "0.9.0" -embedded-io = { version = "0.4", default-features=false, features = ["async"] } +embedded-io-async = "0.5" heapless = "0.7.15" # for tuntap diff --git a/embassy/demos/std/src/main.rs b/embassy/demos/std/src/main.rs index 8c95432..fdef7a5 100644 --- a/embassy/demos/std/src/main.rs +++ b/embassy/demos/std/src/main.rs @@ -15,7 +15,7 @@ use rand::rngs::OsRng; use rand::RngCore; use demo_common::menu::Runner as MenuRunner; -use embedded_io::asynch::Read; +use embedded_io_async::Read; use embassy_sync::signal::Signal; use embassy_sync::blocking_mutex::raw::NoopRawMutex; use embassy_net_tuntap::TunTapDevice; diff --git a/embassy/src/client.rs b/embassy/src/client.rs index 0369a12..ca7c77a 100644 --- a/embassy/src/client.rs +++ b/embassy/src/client.rs @@ -1,6 +1,6 @@ use embassy_sync::mutex::Mutex; use embassy_sync::blocking_mutex::raw::RawMutex; -use embedded_io::asynch; +use embedded_io_async::{Read, Write}; use sunset::*; use sunset::behaviour::UnusedServ; @@ -25,8 +25,8 @@ impl<'a, C: CliBehaviour> SSHClient<'a, C> { } pub async fn run<B: ?Sized, M: RawMutex>(&self, - rsock: &mut impl asynch::Read, - wsock: &mut impl asynch::Write, + rsock: &mut impl Read, + wsock: &mut impl Write, b: &Mutex<M, B>) -> Result<()> where for<'f> Behaviour<'f, C, S>: From<&'f mut B> diff --git a/embassy/src/embassy_channel.rs b/embassy/src/embassy_channel.rs index 735e10b..0b20e21 100644 --- a/embassy/src/embassy_channel.rs +++ b/embassy/src/embassy_channel.rs @@ -5,7 +5,7 @@ #[allow(unused_imports)] use log::{debug, error, info, log, trace, warn}; -use embedded_io::{asynch, Io}; +use embedded_io_async::{Read, Write, ErrorType}; use crate::*; use embassy_sunset::EmbassySunset; @@ -50,17 +50,17 @@ impl<C: CliBehaviour, S: ServBehaviour> Clone for ChanIO<'_, C, S> { } } -impl<C: CliBehaviour, S: ServBehaviour> Io for ChanIO<'_, C, S> { +impl<C: CliBehaviour, S: ServBehaviour> ErrorType for ChanIO<'_, C, S> { type Error = sunset::Error; } -impl<'a, C: CliBehaviour, S: ServBehaviour> asynch::Read for ChanIO<'a, C, S> { +impl<'a, C: CliBehaviour, S: ServBehaviour> Read for ChanIO<'a, C, S> { async fn read(&mut self, buf: &mut [u8]) -> Result<usize, sunset::Error> { self.sunset.read_channel(self.num, self.dt, buf).await } } -impl<'a, C: CliBehaviour, S: ServBehaviour> asynch::Write for ChanIO<'a, C, S> { +impl<'a, C: CliBehaviour, S: ServBehaviour> Write for ChanIO<'a, C, S> { async fn write(&mut self, buf: &[u8]) -> Result<usize, sunset::Error> { self.sunset.write_channel(self.num, self.dt, buf).await } @@ -146,37 +146,37 @@ impl<'a, C: CliBehaviour, S: ServBehaviour> ChanOut<'a, C, S> { } } -impl<C: CliBehaviour, S: ServBehaviour> Io for ChanInOut<'_, C, S> { +impl<C: CliBehaviour, S: ServBehaviour> ErrorType for ChanInOut<'_, C, S> { type Error = sunset::Error; } -impl<C: CliBehaviour, S: ServBehaviour> Io for ChanIn<'_, C, S> { +impl<C: CliBehaviour, S: ServBehaviour> ErrorType for ChanIn<'_, C, S> { type Error = sunset::Error; } -impl<C: CliBehaviour, S: ServBehaviour> Io for ChanOut<'_, C, S> { +impl<C: CliBehaviour, S: ServBehaviour> ErrorType for ChanOut<'_, C, S> { type Error = sunset::Error; } -impl<'a, C: CliBehaviour, S: ServBehaviour> asynch::Read for ChanInOut<'a, C, S> { +impl<'a, C: CliBehaviour, S: ServBehaviour> Read for ChanInOut<'a, C, S> { async fn read(&mut self, buf: &mut [u8]) -> Result<usize, sunset::Error> { self.0.read(buf).await } } -impl<'a, C: CliBehaviour, S: ServBehaviour> asynch::Write for ChanInOut<'a, C, S> { +impl<'a, C: CliBehaviour, S: ServBehaviour> Write for ChanInOut<'a, C, S> { async fn write(&mut self, buf: &[u8]) -> Result<usize, sunset::Error> { self.0.write(buf).await } } -impl<'a, C: CliBehaviour, S: ServBehaviour> asynch::Read for ChanIn<'a, C, S> { +impl<'a, C: CliBehaviour, S: ServBehaviour> Read for ChanIn<'a, C, S> { async fn read(&mut self, buf: &mut [u8]) -> Result<usize, sunset::Error> { self.0.read(buf).await } } -impl<'a, C: CliBehaviour, S: ServBehaviour> asynch::Write for ChanOut<'a, C, S> { +impl<'a, C: CliBehaviour, S: ServBehaviour> Write for ChanOut<'a, C, S> { async fn write(&mut self, buf: &[u8]) -> Result<usize, sunset::Error> { self.0.write(buf).await } diff --git a/embassy/src/embassy_sunset.rs b/embassy/src/embassy_sunset.rs index 1ee2e34..f9806f1 100644 --- a/embassy/src/embassy_sunset.rs +++ b/embassy/src/embassy_sunset.rs @@ -18,7 +18,7 @@ use embassy_sync::mutex::Mutex; use embassy_sync::signal::Signal; use embassy_futures::select::select; use embassy_futures::join; -use embedded_io::{asynch, Io}; +use embedded_io_async::{Read, Write, BufRead}; // thumbv6m has no atomic usize add/sub use atomic_polyfill::AtomicUsize; @@ -121,8 +121,8 @@ impl<'a, C: CliBehaviour, S: ServBehaviour> EmbassySunset<'a, C, S> { } pub async fn run<B: ?Sized, M: RawMutex>(&self, - rsock: &mut impl asynch::Read, - wsock: &mut impl asynch::Write, + rsock: &mut impl Read, + wsock: &mut impl Write, b: &Mutex<M, B>) -> Result<()> where for<'f> Behaviour<'f, C, S>: From<&'f mut B> @@ -517,8 +517,8 @@ impl<'a, C: CliBehaviour, S: ServBehaviour> EmbassySunset<'a, C, S> { pub async fn io_copy<const B: usize, R, W>(r: &mut R, w: &mut W) -> Result<()> - where R: asynch::Read+Io<Error=sunset::Error>, - W: asynch::Write+Io<Error=sunset::Error> + where R: Read<Error=sunset::Error>, + W: Write<Error=sunset::Error> { let mut b = [0u8; B]; loop { @@ -527,15 +527,15 @@ pub async fn io_copy<const B: usize, R, W>(r: &mut R, w: &mut W) -> Result<()> return sunset::error::ChannelEOF.fail(); } let b = &b[..n]; - w.write_all(b).await?; + w.write_all(b).await? } #[allow(unreachable_code)] Ok::<_, Error>(()) } pub async fn io_copy_nowriteerror<const B: usize, R, W>(r: &mut R, w: &mut W) -> Result<()> - where R: asynch::Read+Io<Error=sunset::Error>, - W: asynch::Write, + where R: Read<Error=sunset::Error>, + W: Write, { let mut b = [0u8; B]; loop { @@ -553,8 +553,8 @@ pub async fn io_copy_nowriteerror<const B: usize, R, W>(r: &mut R, w: &mut W) -> } pub async fn io_buf_copy<R, W>(r: &mut R, w: &mut W) -> Result<()> - where R: asynch::BufRead+Io<Error=sunset::Error>, - W: asynch::Write+Io<Error=sunset::Error> + where R: BufRead<Error=sunset::Error>, + W: Write<Error=sunset::Error> { loop { let b = r.fill_buf().await?; @@ -570,8 +570,8 @@ pub async fn io_buf_copy<R, W>(r: &mut R, w: &mut W) -> Result<()> } pub async fn io_buf_copy_noreaderror<R, W>(r: &mut R, w: &mut W) -> Result<()> - where R: asynch::BufRead, - W: asynch::Write+Io<Error=sunset::Error> + where R: BufRead, + W: Write<Error=sunset::Error> { loop { let b = match r.fill_buf().await { diff --git a/embassy/src/server.rs b/embassy/src/server.rs index 7954c5d..5d0e1ae 100644 --- a/embassy/src/server.rs +++ b/embassy/src/server.rs @@ -1,6 +1,6 @@ use embassy_sync::mutex::Mutex; use embassy_sync::blocking_mutex::raw::RawMutex; -use embedded_io::asynch; +use embedded_io_async::{Read, Write}; use sunset::*; use sunset::behaviour::UnusedCli; @@ -24,8 +24,8 @@ impl<'a, S: ServBehaviour> SSHServer<'a, S> { } pub async fn run<B: ?Sized, M: RawMutex>(&self, - rsock: &mut impl asynch::Read, - wsock: &mut impl asynch::Write, + rsock: &mut impl Read, + wsock: &mut impl Write, b: &Mutex<M, B>) -> Result<()> where for<'f> Behaviour<'f, UnusedCli, S>: From<&'f mut B> diff --git a/src/error.rs b/src/error.rs index de25bf5..87282c2 100644 --- a/src/error.rs +++ b/src/error.rs @@ -204,6 +204,16 @@ impl embedded_io::Error for Error { } } +#[cfg(feature = "embedded-io")] +impl From<embedded_io::WriteAllError<Error>> for Error { + fn from(e: embedded_io::WriteAllError<Error>) -> Error { + match e { + embedded_io::WriteAllError::WriteZero => ChannelEOF.build(), + embedded_io::WriteAllError::Other(e) => e, + } + } +} + pub type Result<T, E = Error> = core::result::Result<T, E>; pub trait TrapBug<T> { -- GitLab