embedded-io-adapters

This commit is contained in:
Robin Appelman 2024-02-18 15:52:22 +01:00
commit fad21024fb
3 changed files with 10 additions and 74 deletions

62
Cargo.lock generated
View file

@ -62,16 +62,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d"
[[package]]
name = "equivalent"
version = "1.0.1"
name = "embedded-io-adapters"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "hashbrown"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
checksum = "b03facd2b544d24916f312a6026c1b548b8af012f788a554d498afdc8ef9c775"
dependencies = [
"embedded-io",
]
[[package]]
name = "hlk_ld6002"
@ -79,21 +76,12 @@ version = "0.1.0"
dependencies = [
"bytemuck",
"embedded-io",
"embedded-io-adapters",
"num_enum",
"serialport",
"termion",
]
[[package]]
name = "indexmap"
version = "2.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
dependencies = [
"equivalent",
"hashbrown",
]
[[package]]
name = "io-kit-sys"
version = "0.4.0"
@ -182,7 +170,6 @@ version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn",
@ -200,15 +187,6 @@ version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
[[package]]
name = "proc-macro-crate"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
dependencies = [
"toml_edit",
]
[[package]]
name = "proc-macro2"
version = "1.0.70"
@ -339,23 +317,6 @@ dependencies = [
"syn",
]
[[package]]
name = "toml_datetime"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
[[package]]
name = "toml_edit"
version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
dependencies = [
"indexmap",
"toml_datetime",
"winnow",
]
[[package]]
name = "unescaper"
version = "0.1.4"
@ -392,12 +353,3 @@ name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "winnow"
version = "0.5.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
dependencies = [
"memchr",
]

View file

@ -10,6 +10,6 @@ embedded-io = "0.6.1"
num_enum = { version = "0.7.2", default-features = false }
[dev-dependencies]
embedded-io = { version = "0.6.1", features = ["std"] }
embedded-io-adapters = { version = "0.6.1", features = ["std"] }
serialport = "4.3.0"
termion = "3.0.0"

View file

@ -1,4 +1,4 @@
use embedded_io::{ErrorType, Read, ReadExactError};
use embedded_io_adapters::std::FromStd;
use hlk_ld6002::{Data, MessageStream};
use serialport::ClearBuffer;
use std::env::args;
@ -12,7 +12,7 @@ fn main() {
.expect("Failed to open port");
port.clear(ClearBuffer::All).expect("clear");
let mut messages = MessageStream::new(ReadAdapter(port));
let mut messages = MessageStream::new(FromStd::new(port));
let mut data = Data::default();
@ -32,19 +32,3 @@ fn main() {
}
}
}
struct ReadAdapter<R>(R);
impl<R: std::io::Read> ErrorType for ReadAdapter<R> {
type Error = std::io::Error;
}
impl<R: std::io::Read> Read for ReadAdapter<R> {
fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error> {
self.0.read(buf)
}
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), ReadExactError<Self::Error>> {
self.0.read_exact(buf).map_err(ReadExactError::Other)
}
}