Parse and validate everything upfront
(v: Value)
| 69 | impl CustomMsgHook { |
| 70 | /// Parse and validate everything upfront |
| 71 | pub fn parse(v: Value) -> Option<Self> { |
| 72 | let raw: CustomMsgHookRaw = serde_json::from_value(v).ok()?; |
| 73 | let peer_id = raw.peer_id; |
| 74 | let payload = decode_lsps0_frame_hex(&raw.payload)?; |
| 75 | Some(Self { peer_id, payload }) |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | fn decode_lsps0_frame_hex(hex_str: &str) -> Option<Vec<u8>> { |