@@ -122,6 +122,11 @@ fn main() {
122122 . package_fun ( pq ! ( z_encoding_to_string) )
123123 . package_fun ( pq ! ( z_encoding_clone) )
124124 . package_fun ( pq ! ( z_encoding_from_string) )
125+ // Combined ACCESSOR for ZEncoding (output expansion): decompose to its
126+ // canonical string (`z_encoding_to_string`), nested by the ZSample
127+ // combined accessor below to build the SDK `Encoding(string)`.
128+ . combined_accessor ( pq ! ( ZEncoding ) )
129+ . combined_accessor_record ( pq ! ( z_encoding_to_string) )
125130 // Single constructor for ZEncoding: encoding params accept a `String`
126131 // (built via z_encoding_from_string) directly — the SDK passes its
127132 // canonical `repr` String, no per-call `zEncodingFromString` + close.
@@ -207,6 +212,22 @@ fn main() {
207212 . package_fun ( pq ! ( z_sample_congestion_control) )
208213 . package_fun ( pq ! ( z_sample_attachment) )
209214 . expand_output ( ) // Option<&ZZBytes> → builder (ByteArray) → R?
215+ // Combined ACCESSOR for ZSample (output expansion, M3): the full sample
216+ // decomposed in ONE crossing — NESTS the ZKeyExpr (handle+string),
217+ // ZZBytes (payload bytes), ZEncoding (string) and ZTimestamp (ntp64,
218+ // nullable) combined accessors, plus enum leaves (kind/priority/
219+ // congestion → Int) and `express` (bool). Record order = builder arg
220+ // order. Used by `z_reply_sample` below to build a full SDK `Sample`.
221+ . combined_accessor ( pq ! ( ZSample ) )
222+ . combined_accessor_record_nested ( pq ! ( z_sample_key_expr) ) // → (ZKeyExpr, String)
223+ . combined_accessor_record_nested ( pq ! ( z_sample_payload) ) // → ByteArray
224+ . combined_accessor_record_nested ( pq ! ( z_sample_encoding) ) // → String
225+ . combined_accessor_record ( pq ! ( z_sample_kind) ) // enum → Int
226+ . combined_accessor_record_nested ( pq ! ( z_sample_timestamp) ) // Option → Long?
227+ . combined_accessor_record ( pq ! ( z_sample_express) ) // bool → Boolean
228+ . combined_accessor_record ( pq ! ( z_sample_priority) ) // enum → Int
229+ . combined_accessor_record ( pq ! ( z_sample_congestion_control) ) // enum → Int
230+ . combined_accessor_record_nested ( pq ! ( z_sample_attachment) ) // Option → ByteArray?
210231 . package ( "pubsub" )
211232 . ptr_class ( pq ! ( ZPublisher ) )
212233 . package_fun ( pq ! ( z_publisher_put) )
@@ -249,6 +270,7 @@ fn main() {
249270 . package_fun ( pq ! ( z_reply_replier_eid) )
250271 . package_fun ( pq ! ( z_reply_is_ok) )
251272 . package_fun ( pq ! ( z_reply_sample) )
273+ . expand_output ( ) // Option<&ZSample> → builder(full Sample leaves) → R?
252274 . package_fun ( pq ! ( z_reply_error_payload) )
253275 . package_fun ( pq ! ( z_reply_error_encoding) )
254276 . package ( "liveliness" )
0 commit comments