From f0494c1bba2f5575bd81b79005f9f849b185fc22 Mon Sep 17 00:00:00 2001 From: Gary Krause Date: Tue, 9 Jul 2024 13:51:00 -0400 Subject: [PATCH] doc: Document Seq064K Takes specific of bytes, types and sizes from the specification. Lists some use cases for this struct. Work toward: #1011 fix: cargo fmt for docstrings --- .../codec/src/datatypes/non_copy_data_types/seq_inner.rs | 9 +++++++++ .../serde-sv2/src/primitives/sequences/seq064k.rs | 1 + 2 files changed, 10 insertions(+) diff --git a/protocols/v2/binary-sv2/no-serde-sv2/codec/src/datatypes/non_copy_data_types/seq_inner.rs b/protocols/v2/binary-sv2/no-serde-sv2/codec/src/datatypes/non_copy_data_types/seq_inner.rs index acc50f15f..23c1056c9 100644 --- a/protocols/v2/binary-sv2/no-serde-sv2/codec/src/datatypes/non_copy_data_types/seq_inner.rs +++ b/protocols/v2/binary-sv2/no-serde-sv2/codec/src/datatypes/non_copy_data_types/seq_inner.rs @@ -95,6 +95,15 @@ impl<'a, T: GetSize> GetSize for Seq0255<'a, T> { } } +/// Fixed size data sequence up to a length of 65535 +/// +/// Byte Length Calculation: +/// - For fixed-size T: 2 + LENGTH * size_of::() +/// - For variable-length T: 2 + seq.map(|x| x.length()).sum() +/// Decsription: 2-byte length L, unsigned little-endian integer 16-bits, followed by a sequence of L elements of type T. Allowed range of length is 0 to 65535. +/// +/// Used for listing channel ids, tx short hashes, tx hashes, list indexes, and full transaction data. +/// /// The liftime is here only for type compatibility with serde-sv2 #[derive(Debug, Clone, Eq, PartialEq)] pub struct Seq064K<'a, T>(pub(crate) Vec, PhantomData<&'a T>); diff --git a/protocols/v2/binary-sv2/serde-sv2/src/primitives/sequences/seq064k.rs b/protocols/v2/binary-sv2/serde-sv2/src/primitives/sequences/seq064k.rs index 8c2428d91..c830e213d 100644 --- a/protocols/v2/binary-sv2/serde-sv2/src/primitives/sequences/seq064k.rs +++ b/protocols/v2/binary-sv2/serde-sv2/src/primitives/sequences/seq064k.rs @@ -9,6 +9,7 @@ use crate::{ use alloc::vec::Vec; use serde::{ser, ser::SerializeTuple, Deserialize, Deserializer, Serialize}; +/// See `binary_sv2::Seq064k` #[derive(Debug, Clone)] pub struct Seq064K<'s, T: Clone + Serialize + TryFromBSlice<'s>> { seq: Option>,