Skip to content

Commit 21082c5

Browse files
committed
Update to postcard-schema-ng traits and types.
1 parent 5d9a58d commit 21082c5

File tree

20 files changed

+367
-323
lines changed

20 files changed

+367
-323
lines changed

example/workbook-icd/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#![cfg_attr(not(feature = "use-std"), no_std)]
22

33
use postcard_rpc::{endpoints, topics, TopicDirection};
4-
use postcard_schema::Schema;
4+
use postcard_schema_ng::Schema;
55
use serde::{Deserialize, Serialize};
66

77
// ---

source/postcard-rpc-test/Cargo.lock

Lines changed: 15 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/postcard-rpc-test/Cargo.toml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ features = ["derive"]
1515
path = "../postcard-rpc"
1616
features = ["use-std", "test-utils"]
1717

18-
[dependencies.postcard-schema]
19-
version = "0.2.1"
18+
[dependencies.postcard-schema-ng]
19+
version = "0.3.0"
2020
features = ["derive"]
2121

2222
[dependencies.tokio]
@@ -26,3 +26,7 @@ features = ["rt", "macros", "sync", "time"]
2626
[features]
2727
default = ["alpha"]
2828
alpha = []
29+
30+
[patch.crates-io.postcard-schema]
31+
git = "https://github.com/rslawson/postcard"
32+
features = ["derive"]

source/postcard-rpc-test/tests/basic.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use core::{
44
};
55
use std::{sync::Arc, time::Instant};
66

7-
use postcard_schema::{schema::owned::OwnedNamedType, Schema};
7+
use postcard_schema_ng::{schema::owned::OwnedDataModelType, Schema};
88
use serde::{Deserialize, Serialize};
99
use tokio::{sync::mpsc, task::yield_now, time::timeout};
1010

@@ -520,7 +520,7 @@ fn device_map() {
520520
println!("## Types");
521521
println!();
522522
for ty in app.device_map.types {
523-
let ty = OwnedNamedType::from(*ty);
523+
let ty = OwnedDataModelType::from(*ty);
524524
println!("* {ty}");
525525
}
526526

source/postcard-rpc-test/tests/subscrobble.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use core::{
44
};
55
use std::sync::Arc;
66

7-
use postcard_schema::Schema;
7+
use postcard_schema_ng::Schema;
88
use serde::{Deserialize, Serialize};
99
use tokio::{sync::mpsc, time::{sleep, timeout}};
1010

source/postcard-rpc/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ defmt = { version = "0.3.5", optional = true }
3030
heapless = "0.8.0"
3131
postcard = { version = "1.0.10" }
3232
serde = { version = "1.0.192", default-features = false, features = ["derive"] }
33-
postcard-schema = { version = "0.2.1", features = ["derive"] }
33+
postcard-schema-ng = { version = "0.3.0", features = ["derive"] }
3434

3535
#
3636
# std-only features
@@ -165,12 +165,12 @@ features = ["std"]
165165

166166
[features]
167167
default = []
168-
test-utils = ["use-std", "postcard-schema/use-std"]
168+
test-utils = ["use-std", "postcard-schema-ng/use-std"]
169169
use-std = [
170170
"dep:maitake-sync",
171171
"dep:tokio",
172172
"postcard/use-std",
173-
"postcard-schema/use-std",
173+
"postcard-schema-ng/use-std",
174174
"dep:thiserror",
175175
"dep:tracing",
176176
"dep:trait-variant",

source/postcard-rpc/src/header.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ impl VarHeader {
544544
remain = remain2;
545545
let mut buf = [0u8; 8];
546546
buf.copy_from_slice(keybs);
547-
VarKey::Key8(unsafe { Key::from_bytes(buf) })
547+
VarKey::Key8(Key::from_bytes(buf))
548548
}
549549
// Impossible: all bits covered
550550
_ => unreachable!(),
@@ -632,9 +632,9 @@ mod test {
632632
),
633633
(
634634
VarHeader {
635-
key: VarKey::Key8(unsafe {
635+
key: VarKey::Key8(
636636
Key::from_bytes([0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78, 0x89])
637-
}),
637+
),
638638
seq_no: VarSeq::Seq4(0x42_AF_AA_BB),
639639
},
640640
&[

source/postcard-rpc/src/host_client/mod.rs

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use maitake_sync::{
2020
wait_map::{WaitError, WakeOutcome},
2121
WaitMap,
2222
};
23-
use postcard_schema::{schema::owned::OwnedNamedType, Schema};
23+
use postcard_schema_ng::{schema::owned::OwnedDataModelType, Schema};
2424
use serde::{de::DeserializeOwned, Deserialize, Serialize};
2525
use tokio::{
2626
select,
@@ -983,7 +983,7 @@ pub struct SchemaReport {
983983
/// All custom types spoken by the device (on any endpoint or topic),
984984
/// as well as all primitive types. In the future, primitive types may
985985
/// be removed.
986-
pub types: HashSet<OwnedNamedType>,
986+
pub types: HashSet<OwnedDataModelType>,
987987
/// All incoming (client to server) topics reported by the device
988988
pub topics_in: Vec<TopicReport>,
989989
/// All outgoing (server to client) topics reported by the device
@@ -1003,45 +1003,47 @@ impl Default for SchemaReport {
10031003

10041004
// We need to pre-populate all of the types we consider primitives:
10051005
// DataModelType::Bool
1006-
me.add_type(OwnedNamedType::from(<bool as Schema>::SCHEMA));
1006+
me.add_type(OwnedDataModelType::from(<bool as Schema>::SCHEMA));
10071007
// DataModelType::I8
1008-
me.add_type(OwnedNamedType::from(<i8 as Schema>::SCHEMA));
1008+
me.add_type(OwnedDataModelType::from(<i8 as Schema>::SCHEMA));
10091009
// DataModelType::U8
1010-
me.add_type(OwnedNamedType::from(<u8 as Schema>::SCHEMA));
1010+
me.add_type(OwnedDataModelType::from(<u8 as Schema>::SCHEMA));
10111011
// DataModelType::I16
1012-
me.add_type(OwnedNamedType::from(<i16 as Schema>::SCHEMA));
1012+
me.add_type(OwnedDataModelType::from(<i16 as Schema>::SCHEMA));
10131013
// DataModelType::I32
1014-
me.add_type(OwnedNamedType::from(<i32 as Schema>::SCHEMA));
1014+
me.add_type(OwnedDataModelType::from(<i32 as Schema>::SCHEMA));
10151015
// DataModelType::I64
1016-
me.add_type(OwnedNamedType::from(<i64 as Schema>::SCHEMA));
1016+
me.add_type(OwnedDataModelType::from(<i64 as Schema>::SCHEMA));
10171017
// DataModelType::I128
1018-
me.add_type(OwnedNamedType::from(<i128 as Schema>::SCHEMA));
1018+
me.add_type(OwnedDataModelType::from(<i128 as Schema>::SCHEMA));
10191019
// DataModelType::U16
1020-
me.add_type(OwnedNamedType::from(<u16 as Schema>::SCHEMA));
1020+
me.add_type(OwnedDataModelType::from(<u16 as Schema>::SCHEMA));
10211021
// DataModelType::U32
1022-
me.add_type(OwnedNamedType::from(<u32 as Schema>::SCHEMA));
1022+
me.add_type(OwnedDataModelType::from(<u32 as Schema>::SCHEMA));
10231023
// DataModelType::U64
1024-
me.add_type(OwnedNamedType::from(<u64 as Schema>::SCHEMA));
1024+
me.add_type(OwnedDataModelType::from(<u64 as Schema>::SCHEMA));
10251025
// DataModelType::U128
1026-
me.add_type(OwnedNamedType::from(<u128 as Schema>::SCHEMA));
1026+
me.add_type(OwnedDataModelType::from(<u128 as Schema>::SCHEMA));
10271027
// // DataModelType::Usize
1028-
// me.add_type(OwnedNamedType::from(<usize as Schema>::SCHEMA));
1028+
// me.add_type(OwnedDataModelType::from(<usize as Schema>::SCHEMA));
10291029
// // DataModelType::Isize
1030-
// me.add_type(OwnedNamedType::from(<isize as Schema>::SCHEMA));
1030+
// me.add_type(OwnedDataModelType::from(<isize as Schema>::SCHEMA));
10311031
// DataModelType::F32
1032-
me.add_type(OwnedNamedType::from(<f32 as Schema>::SCHEMA));
1032+
me.add_type(OwnedDataModelType::from(<f32 as Schema>::SCHEMA));
10331033
// DataModelType::F64
1034-
me.add_type(OwnedNamedType::from(<f64 as Schema>::SCHEMA));
1034+
me.add_type(OwnedDataModelType::from(<f64 as Schema>::SCHEMA));
10351035
// DataModelType::Char
1036-
me.add_type(OwnedNamedType::from(<char as Schema>::SCHEMA));
1036+
me.add_type(OwnedDataModelType::from(<char as Schema>::SCHEMA));
10371037
// DataModelType::String
1038-
me.add_type(OwnedNamedType::from(<String as Schema>::SCHEMA));
1038+
me.add_type(OwnedDataModelType::from(<String as Schema>::SCHEMA));
10391039
// DataModelType::ByteArray
1040-
me.add_type(OwnedNamedType::from(<Vec<u8> as Schema>::SCHEMA));
1040+
me.add_type(OwnedDataModelType::from(<Vec<u8> as Schema>::SCHEMA));
10411041
// DataModelType::Unit
1042-
me.add_type(OwnedNamedType::from(<() as Schema>::SCHEMA));
1042+
me.add_type(OwnedDataModelType::from(<() as Schema>::SCHEMA));
10431043
// DataModelType::Schema
1044-
me.add_type(OwnedNamedType::from(<OwnedNamedType as Schema>::SCHEMA));
1044+
me.add_type(OwnedDataModelType::from(
1045+
<OwnedDataModelType as Schema>::SCHEMA,
1046+
));
10451047

10461048
me
10471049
}
@@ -1055,7 +1057,7 @@ pub struct TopicReport {
10551057
/// The Key of the topic (which hashes the path and type)
10561058
pub key: Key,
10571059
/// The schema of the type of the message
1058-
pub ty: OwnedNamedType,
1060+
pub ty: OwnedDataModelType,
10591061
}
10601062

10611063
/// A description of a single Endpoint
@@ -1066,11 +1068,11 @@ pub struct EndpointReport {
10661068
/// The Key of the request (which hashes the path and type)
10671069
pub req_key: Key,
10681070
/// The schema of the request type
1069-
pub req_ty: OwnedNamedType,
1071+
pub req_ty: OwnedDataModelType,
10701072
/// The Key of the response (which hashes the path and type)
10711073
pub resp_key: Key,
10721074
/// The schema of the response type
1073-
pub resp_ty: OwnedNamedType,
1075+
pub resp_ty: OwnedDataModelType,
10741076
}
10751077

10761078
/// An error that denotes we were unable to resolve the type used by a given key
@@ -1079,7 +1081,7 @@ pub struct UnableToFindType;
10791081

10801082
impl SchemaReport {
10811083
/// Insert a new type
1082-
pub fn add_type(&mut self, t: OwnedNamedType) {
1084+
pub fn add_type(&mut self, t: OwnedDataModelType) {
10831085
self.types.insert(t);
10841086
}
10851087

source/postcard-rpc/src/host_client/raw_nusb.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use nusb::{
66
transfer::{Direction, EndpointType, Queue, RequestBuffer, TransferError},
77
DeviceInfo, InterfaceInfo,
88
};
9-
use postcard_schema::Schema;
9+
use postcard_schema_ng::Schema;
1010
use serde::de::DeserializeOwned;
1111

1212
use crate::{
@@ -58,7 +58,7 @@ where
5858
/// use postcard_rpc::host_client::HostClient;
5959
/// use postcard_rpc::header::VarSeqKind;
6060
/// use serde::{Serialize, Deserialize};
61-
/// use postcard_schema::Schema;
61+
/// use postcard_schema_ng::Schema;
6262
///
6363
/// /// A "wire error" type your server can use to respond to any
6464
/// /// kind of request, for example if deserializing a request fails
@@ -132,7 +132,7 @@ where
132132
/// use postcard_rpc::host_client::HostClient;
133133
/// use postcard_rpc::header::VarSeqKind;
134134
/// use serde::{Serialize, Deserialize};
135-
/// use postcard_schema::Schema;
135+
/// use postcard_schema_ng::Schema;
136136
///
137137
/// /// A "wire error" type your server can use to respond to any
138138
/// /// kind of request, for example if deserializing a request fails
@@ -198,7 +198,7 @@ where
198198
/// use postcard_rpc::host_client::HostClient;
199199
/// use postcard_rpc::header::VarSeqKind;
200200
/// use serde::{Serialize, Deserialize};
201-
/// use postcard_schema::Schema;
201+
/// use postcard_schema_ng::Schema;
202202
///
203203
/// /// A "wire error" type your server can use to respond to any
204204
/// /// kind of request, for example if deserializing a request fails
@@ -300,7 +300,7 @@ where
300300
/// use postcard_rpc::host_client::HostClient;
301301
/// use postcard_rpc::header::VarSeqKind;
302302
/// use serde::{Serialize, Deserialize};
303-
/// use postcard_schema::Schema;
303+
/// use postcard_schema_ng::Schema;
304304
///
305305
/// /// A "wire error" type your server can use to respond to any
306306
/// /// kind of request, for example if deserializing a request fails

source/postcard-rpc/src/host_client/serial.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::{collections::VecDeque, future::Future};
22

33
use cobs::encode_vec;
4-
use postcard_schema::Schema;
4+
use postcard_schema_ng::Schema;
55
use serde::de::DeserializeOwned;
66
use tokio::io::{AsyncReadExt, AsyncWriteExt, ReadHalf, WriteHalf};
77
use tokio_serial::{SerialPortBuilderExt, SerialStream};
@@ -34,7 +34,7 @@ where
3434
/// use postcard_rpc::host_client::HostClient;
3535
/// use postcard_rpc::header::VarSeqKind;
3636
/// use serde::{Serialize, Deserialize};
37-
/// use postcard_schema::Schema;
37+
/// use postcard_schema_ng::Schema;
3838
///
3939
/// /// A "wire error" type your server can use to respond to any
4040
/// /// kind of request, for example if deserializing a request fails

0 commit comments

Comments
 (0)