public enum SessionSetup { public struct Request { public let header: Header public let structureSize: UInt16 ... public let channel: UInt32 public let securityBufferOffset: UInt16 // securityBufferの先頭からの位置 public let securityBufferLength: UInt16 // securityBufferの長さ public let previousSessionId: UInt64 public let securityBuffer: Data // securityBufferのデータ。
みたいに実行時に受け取るオフセットとサイズがあって、離れた位置に可変長のデータがある、みたいなやつ。buffer = reader.read(from: Int(securityBufferOffset), count: Int(securityBufferLength))
こんなふうにデコード時に書いてるけどこんな感じでsecurityBufferのプロパティにproperty wrapperでアノテーションが書ければいいのかな。