Skip to content

Commit 7d24f3f

Browse files
committed
refactor framing_sv2 example..
we need to assert that the deserialized message has the same content from the original
1 parent 19f26e3 commit 7d24f3f

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

protocols/v2/framing-sv2/examples/sv2_frame.rs

+17-12
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,29 @@
1717
// cargo run --example sv2_frame
1818
// ```
1919

20-
use binary_sv2::{binary_codec_sv2, Serialize};
20+
use binary_sv2::{binary_codec_sv2, Deserialize, Serialize};
2121
use framing_sv2::framing::Sv2Frame;
22+
use std::convert::TryInto;
2223

2324
// Example message type (e.g., SetupConnection)
2425
const MSG_TYPE: u8 = 1;
2526
// Example extension type (e.g., a standard Sv2 message)
2627
const EXT_TYPE: u16 = 0x0001;
2728

28-
#[derive(Serialize, Debug)]
29+
#[derive(Serialize, Deserialize, Debug, Clone)]
2930
pub struct CustomMessage {
30-
pub data: u32,
31+
pub nonce: u32,
3132
}
3233

3334
fn main() {
3435
// Create the message payload
35-
let message = CustomMessage { data: 42 };
36+
let message = CustomMessage { nonce: 42 };
3637

3738
// Create the frame from the message
3839
let frame: Sv2Frame<CustomMessage, Vec<u8>> =
39-
Sv2Frame::from_message(message, MSG_TYPE, EXT_TYPE, false)
40+
Sv2Frame::from_message(message.clone(), MSG_TYPE, EXT_TYPE, false)
4041
.expect("Failed to frame the message");
4142

42-
// How header information is accessed
43-
let header = frame.get_header().expect("Frame has no header");
44-
assert_eq!(header.msg_type(), MSG_TYPE);
45-
assert_eq!(header.ext_type(), EXT_TYPE);
46-
4743
// Serialize the frame into a byte array for transmission
4844
let mut serialized_frame = vec![0u8; frame.encoded_length()];
4945
frame
@@ -54,6 +50,15 @@ fn main() {
5450
let mut deserialized_frame = Sv2Frame::<CustomMessage, Vec<u8>>::from_bytes(serialized_frame)
5551
.expect("Failed to deserialize frame");
5652

57-
assert_eq!(deserialized_frame.encoded_length(), 10); // 6 header bytes + 4 payload bytes
58-
assert_eq!(deserialized_frame.payload(), [42, 0, 0, 0]);
53+
// Assert that deserialized header has the original content
54+
let deserialized_header = deserialized_frame
55+
.get_header()
56+
.expect("Frame has no header");
57+
assert_eq!(deserialized_header.msg_type(), MSG_TYPE);
58+
assert_eq!(deserialized_header.ext_type(), EXT_TYPE);
59+
60+
// Assert that deserialized message has the original content
61+
let deserialized_message: CustomMessage = binary_sv2::from_bytes(deserialized_frame.payload())
62+
.expect("Failed to extract the message from the payload");
63+
assert_eq!(deserialized_message.nonce, message.nonce);
5964
}

0 commit comments

Comments
 (0)