#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
struct MyStructVec {
#[serde(with = "kaspa_utils::serde_bytes_optional")]
v: Option<Vec<u8>>,
}
let v = vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19];
let len = v.len();
let test_struct = MyStructVec { v: Some(v.clone()) };
let encoded = bincode::serialize(&test_struct).unwrap();
assert_eq!(encoded, std::iter::once(1).chain(len.to_le_bytes().into_iter()).chain(v.into_iter()).collect::<Vec<_>>());
let decoded: MyStructVec = bincode::deserialize(&encoded).unwrap();
assert_eq!(test_struct, decoded);
let expected_str = r#"{"v":"000102030405060708090a0b0c0d0e0f10111213"}"#;
let json = serde_json::to_string(&test_struct).unwrap();
assert_eq!(expected_str, json);
let from_json: MyStructVec = serde_json::from_str(&json).unwrap();
assert_eq!(test_struct, from_json);