+struct UserOnionMessageContents {
+ tlv_type: u64,
+ data: Vec<u8>,
+}
+
+impl CustomOnionMessageContents for UserOnionMessageContents {
+ fn tlv_type(&self) -> u64 {
+ self.tlv_type
+ }
+}
+impl MaybeReadableArgs<u64> for UserOnionMessageContents {
+ fn read<R: std::io::Read>(_r: &mut R, _args: u64) -> Result<Option<Self>, DecodeError> {
+ // UserOnionMessageContents is only ever passed to `send_onion_message`, never to an
+ // `OnionMessageHandler`, thus it does not need to implement the read side here.
+ unreachable!();
+ }
+}
+impl Writeable for UserOnionMessageContents {
+ fn write<W: Writer>(&self, w: &mut W) -> Result<(), std::io::Error> {
+ w.write_all(&self.data)
+ }
+}
+