diff --git a/vest-dsl/Cargo.toml b/vest-dsl/Cargo.toml index 62e22d94..e56b779f 100644 --- a/vest-dsl/Cargo.toml +++ b/vest-dsl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vest" -version = "0.1.5" +version = "0.1.6" edition = "2021" license = "MIT" description = "Vest: A DSL for specifying and generating fast, formally verified parsers and serializers" diff --git a/vest-dsl/bitcoin/src/vest_bitcoin.rs b/vest-dsl/bitcoin/src/vest_bitcoin.rs index e71d3452..47ac96f0 100644 --- a/vest-dsl/bitcoin/src/vest_bitcoin.rs +++ b/vest-dsl/bitcoin/src/vest_bitcoin.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -160,7 +160,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ScriptCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ScriptCombinatorAlias = Mapped, ScriptMapper>; @@ -227,14 +227,14 @@ pub fn serialize_script<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_script().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_script().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_script().spec_serialize(v@)) }, { let combinator = script(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn script_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -413,7 +413,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TxoutCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TxoutCombinatorAlias = Mapped; @@ -465,14 +465,14 @@ pub fn serialize_txout<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_txout().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_txout().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_txout().spec_serialize(v@)) }, { let combinator = txout(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn txout_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -620,7 +620,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OutpointCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OutpointCombinatorAlias = Mapped; @@ -672,14 +672,14 @@ pub fn serialize_outpoint<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_outpoint().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_outpoint().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_outpoint().spec_serialize(v@)) }, { let combinator = outpoint(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn outpoint_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -820,7 +820,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ScriptSigCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ScriptSigCombinatorAlias = Mapped, ScriptSigMapper>; @@ -887,14 +887,14 @@ pub fn serialize_script_sig<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_script_sig().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_script_sig().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_script_sig().spec_serialize(v@)) }, { let combinator = script_sig(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn script_sig_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1085,7 +1085,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TxinCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TxinCombinatorAlias = Mapped; @@ -1137,14 +1137,14 @@ pub fn serialize_txin<'a>(v: spec_txin().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_txin().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_txin().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_txin().spec_serialize(v@)) }, { let combinator = txin(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn txin_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1285,7 +1285,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for WitnessComponentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type WitnessComponentCombinatorAlias = Mapped, WitnessComponentMapper>; @@ -1352,14 +1352,14 @@ pub fn serialize_witness_component<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_witness_component().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_witness_component().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_witness_component().spec_serialize(v@)) }, { let combinator = witness_component(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn witness_component_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1531,7 +1531,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for WitnessCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type WitnessCombinatorAlias = Mapped, WitnessCont0>, WitnessMapper>; @@ -1598,14 +1598,14 @@ pub fn serialize_witness<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_witness().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_witness().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_witness().spec_serialize(v@)) }, { let combinator = witness(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn witness_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1845,7 +1845,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LockTimeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LockTimeCombinatorAlias = Mapped; @@ -1889,14 +1889,14 @@ pub fn serialize_lock_time<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_lock_time().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_lock_time().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_lock_time().spec_serialize(v@)) }, { let combinator = lock_time(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn lock_time_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2053,7 +2053,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TxSegwitCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TxSegwitCombinatorAlias = Mapped>, BtcVarint), (RepeatN, BtcVarint), TxSegwitCont1>, (RepeatN, (RepeatN, LockTimeCombinator)), TxSegwitCont0>, TxSegwitMapper>; @@ -2135,14 +2135,14 @@ pub fn serialize_tx_segwit<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tx_segwit().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tx_segwit().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tx_segwit().spec_serialize(v@)) }, { let combinator = tx_segwit(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tx_segwit_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2353,7 +2353,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TxNonsegwitCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TxNonsegwitCombinatorAlias = Mapped, BtcVarint), (RepeatN, LockTimeCombinator), TxNonsegwitCont0>, TxNonsegwitMapper>; @@ -2422,14 +2422,14 @@ pub fn serialize_tx_nonsegwit<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tx_nonsegwit(txin_count@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tx_nonsegwit(txin_count@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tx_nonsegwit(txin_count@).spec_serialize(v@)) }, { let combinator = tx_nonsegwit( txin_count ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn tx_nonsegwit_len<'a>(v: >>::SType, txin_count: VarInt) -> (serialize_len: usize) @@ -2634,7 +2634,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TxRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TxRestCombinatorAlias = Mapped; @@ -2680,14 +2680,14 @@ pub fn serialize_tx_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tx_rest(txin_count@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tx_rest(txin_count@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tx_rest(txin_count@).spec_serialize(v@)) }, { let combinator = tx_rest( txin_count ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn tx_rest_len<'a>(v: >>::SType, txin_count: VarInt) -> (serialize_len: usize) @@ -2831,7 +2831,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TxCombinatorAlias = Mapped, TxMapper>; @@ -2898,14 +2898,14 @@ pub fn serialize_tx<'a>(v: >>:: spec_tx().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tx().spec_serialize(v@)) }, { let combinator = tx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3095,7 +3095,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for BlockCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type BlockCombinatorAlias = Mapped, (bytes::Fixed<32>, (U32Le, (U32Le, (U32Le, BtcVarint)))))), RepeatN, BlockCont0>, BlockMapper>; @@ -3162,14 +3162,14 @@ pub fn serialize_block<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_block().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_block().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_block().spec_serialize(v@)) }, { let combinator = block(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn block_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/mavlink/src/vest_mavlink.rs b/vest-dsl/mavlink/src/vest_mavlink.rs index 81683f2e..7215b7f4 100644 --- a/vest-dsl/mavlink/src/vest_mavlink.rs +++ b/vest-dsl/mavlink/src/vest_mavlink.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -261,7 +261,7 @@ impl SpecPartialIso for MavFrameMapper { } impl SpecPartialIsoProof for MavFrameMapper { - proof fn spec_iso(s: Self::Src) { + proof fn spec_iso(s: Self::Src) { assert( Self::spec_apply(s) matches Ok(v) ==> { &&& Self::spec_rev_apply(v) is Ok @@ -269,7 +269,7 @@ impl SpecPartialIsoProof for MavFrameMapper { }); } - proof fn spec_iso_rev(s: Self::Dst) { + proof fn spec_iso_rev(s: Self::Dst) { assert( Self::spec_rev_apply(s) matches Ok(v) ==> { &&& Self::spec_apply(v) is Ok @@ -293,13 +293,13 @@ impl SpecCombinator for SpecMavFrameCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecMavFrameCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecMavFrameCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -307,11 +307,11 @@ impl SecureSpecCombinator for SpecMavFrameCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecMavFrameCombinatorAlias = TryMap; @@ -327,13 +327,13 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MavFrameCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type MavFrameCombinatorAlias = TryMap; @@ -348,11 +348,11 @@ pub fn mav_frame<'a>() -> (o: MavFrameCombinator) <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { let combinator = MavFrameCombinator(TryMap { inner: U8, mapper: MavFrameMapper }); - assert({ - &&& combinator@ == spec_mav_frame() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + // assert({ + // &&& combinator@ == spec_mav_frame() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } @@ -376,14 +376,14 @@ pub fn serialize_mav_frame<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mav_frame().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mav_frame().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mav_frame().spec_serialize(v@)) }, { let combinator = mav_frame(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn mav_frame_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -413,13 +413,13 @@ impl SpecCombinator for SpecMavCmdCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecMavCmdCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecMavCmdCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -427,11 +427,11 @@ impl SecureSpecCombinator for SpecMavCmdCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecMavCmdCombinatorAlias = U16Le; @@ -447,13 +447,13 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MavCmdCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type MavCmdCombinatorAlias = U16Le; @@ -468,11 +468,11 @@ pub fn mav_cmd<'a>() -> (o: MavCmdCombinator) <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { let combinator = MavCmdCombinator(U16Le); - assert({ - &&& combinator@ == spec_mav_cmd() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + // assert({ + // &&& combinator@ == spec_mav_cmd() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } @@ -496,14 +496,14 @@ pub fn serialize_mav_cmd<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mav_cmd().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mav_cmd().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mav_cmd().spec_serialize(v@)) }, { let combinator = mav_cmd(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn mav_cmd_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -649,13 +649,13 @@ impl SpecCombinator for SpecCommandIntCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecCommandIntCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecCommandIntCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -663,11 +663,11 @@ impl SecureSpecCombinator for SpecCommandIntCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecCommandIntCombinatorAlias = Mapped; @@ -798,13 +798,13 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CommandIntCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type CommandIntCombinatorAlias = Mapped; @@ -827,11 +827,11 @@ pub fn command_int<'a>() -> (o: CommandIntCombinator) inner: CommandIntCombinator12((U8, CommandIntCombinator11((U8, CommandIntCombinator10((mav_frame(), CommandIntCombinator9((mav_cmd(), CommandIntCombinator8((U8, CommandIntCombinator7((Refined { inner: U8, predicate: Predicate2576612288366319398 }, CommandIntCombinator6((U32Le, CommandIntCombinator5((U32Le, CommandIntCombinator4((U32Le, CommandIntCombinator3((U32Le, CommandIntCombinator2((U32Le, CommandIntCombinator1((U32Le, U32Le)))))))))))))))))))))))), mapper: CommandIntMapper, }); - assert({ - &&& combinator@ == spec_command_int() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + // assert({ + // &&& combinator@ == spec_command_int() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } @@ -855,14 +855,14 @@ pub fn serialize_command_int<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_command_int().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_command_int().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_command_int().spec_serialize(v@)) }, { let combinator = command_int(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn command_int_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -878,1008 +878,670 @@ pub fn command_int_len<'a>(v: = &'a u8; -impl SpecFrom for SpecTerrainRequestInner { - open spec fn spec_from(m: SpecTerrainRequest) -> SpecTerrainRequestInner { - (m.lat, (m.lon, (m.grid_spacing, m.mask))) - } -} +impl View for MavResult { + type V = Self; -impl SpecFrom for SpecTerrainRequest { - open spec fn spec_from(m: SpecTerrainRequestInner) -> SpecTerrainRequest { - let (lat, (lon, (grid_spacing, mask))) = m; - SpecTerrainRequest { lat, lon, grid_spacing, mask } + open spec fn view(&self) -> Self::V { + *self } } -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct TerrainRequest { - pub lat: u32, - pub lon: u32, - pub grid_spacing: u16, - pub mask: u64, +impl SpecTryFrom for MavResult { + type Error = (); + + open spec fn spec_try_from(v: MavResultInner) -> Result { + match v { + 0u8 => Ok(MavResult::ACCEPTED), + 1u8 => Ok(MavResult::TEMPORARILY_REJECTED), + 2u8 => Ok(MavResult::DENIED), + 3u8 => Ok(MavResult::UNSUPPORTED), + 4u8 => Ok(MavResult::FAILED), + 5u8 => Ok(MavResult::IN_PROGRESS), + 6u8 => Ok(MavResult::CANCELLED), + 7u8 => Ok(MavResult::COMMAND_LONG_ONLY), + 8u8 => Ok(MavResult::COMMAND_INT_ONLY), + 9u8 => Ok(MavResult::COMMAND_UNSUPPORTED_MAV_FRAME), + 10u8 => Ok(MavResult::NOT_IN_CONTROL), + _ => Err(()), + } + } } -impl View for TerrainRequest { - type V = SpecTerrainRequest; +impl SpecTryFrom for MavResultInner { + type Error = (); - open spec fn view(&self) -> Self::V { - SpecTerrainRequest { - lat: self.lat@, - lon: self.lon@, - grid_spacing: self.grid_spacing@, - mask: self.mask@, + open spec fn spec_try_from(v: MavResult) -> Result { + match v { + MavResult::ACCEPTED => Ok(SPEC_MavResult_ACCEPTED), + MavResult::TEMPORARILY_REJECTED => Ok(SPEC_MavResult_TEMPORARILY_REJECTED), + MavResult::DENIED => Ok(SPEC_MavResult_DENIED), + MavResult::UNSUPPORTED => Ok(SPEC_MavResult_UNSUPPORTED), + MavResult::FAILED => Ok(SPEC_MavResult_FAILED), + MavResult::IN_PROGRESS => Ok(SPEC_MavResult_IN_PROGRESS), + MavResult::CANCELLED => Ok(SPEC_MavResult_CANCELLED), + MavResult::COMMAND_LONG_ONLY => Ok(SPEC_MavResult_COMMAND_LONG_ONLY), + MavResult::COMMAND_INT_ONLY => Ok(SPEC_MavResult_COMMAND_INT_ONLY), + MavResult::COMMAND_UNSUPPORTED_MAV_FRAME => Ok(SPEC_MavResult_COMMAND_UNSUPPORTED_MAV_FRAME), + MavResult::NOT_IN_CONTROL => Ok(SPEC_MavResult_NOT_IN_CONTROL), } } } -pub type TerrainRequestInner = (u32, (u32, (u16, u64))); -pub type TerrainRequestInnerRef<'a> = (&'a u32, (&'a u32, (&'a u16, &'a u64))); -impl<'a> From<&'a TerrainRequest> for TerrainRequestInnerRef<'a> { - fn ex_from(m: &'a TerrainRequest) -> TerrainRequestInnerRef<'a> { - (&m.lat, (&m.lon, (&m.grid_spacing, &m.mask))) +impl TryFrom for MavResult { + type Error = (); + + fn ex_try_from(v: MavResultInner) -> Result { + match v { + 0u8 => Ok(MavResult::ACCEPTED), + 1u8 => Ok(MavResult::TEMPORARILY_REJECTED), + 2u8 => Ok(MavResult::DENIED), + 3u8 => Ok(MavResult::UNSUPPORTED), + 4u8 => Ok(MavResult::FAILED), + 5u8 => Ok(MavResult::IN_PROGRESS), + 6u8 => Ok(MavResult::CANCELLED), + 7u8 => Ok(MavResult::COMMAND_LONG_ONLY), + 8u8 => Ok(MavResult::COMMAND_INT_ONLY), + 9u8 => Ok(MavResult::COMMAND_UNSUPPORTED_MAV_FRAME), + 10u8 => Ok(MavResult::NOT_IN_CONTROL), + _ => Err(()), + } } } -impl From for TerrainRequest { - fn ex_from(m: TerrainRequestInner) -> TerrainRequest { - let (lat, (lon, (grid_spacing, mask))) = m; - TerrainRequest { lat, lon, grid_spacing, mask } +impl<'a> TryFrom<&'a MavResult> for MavResultInnerRef<'a> { + type Error = (); + + fn ex_try_from(v: &'a MavResult) -> Result, ()> { + match v { + MavResult::ACCEPTED => Ok(&EXEC_MavResult_ACCEPTED), + MavResult::TEMPORARILY_REJECTED => Ok(&EXEC_MavResult_TEMPORARILY_REJECTED), + MavResult::DENIED => Ok(&EXEC_MavResult_DENIED), + MavResult::UNSUPPORTED => Ok(&EXEC_MavResult_UNSUPPORTED), + MavResult::FAILED => Ok(&EXEC_MavResult_FAILED), + MavResult::IN_PROGRESS => Ok(&EXEC_MavResult_IN_PROGRESS), + MavResult::CANCELLED => Ok(&EXEC_MavResult_CANCELLED), + MavResult::COMMAND_LONG_ONLY => Ok(&EXEC_MavResult_COMMAND_LONG_ONLY), + MavResult::COMMAND_INT_ONLY => Ok(&EXEC_MavResult_COMMAND_INT_ONLY), + MavResult::COMMAND_UNSUPPORTED_MAV_FRAME => Ok(&EXEC_MavResult_COMMAND_UNSUPPORTED_MAV_FRAME), + MavResult::NOT_IN_CONTROL => Ok(&EXEC_MavResult_NOT_IN_CONTROL), + } } } -pub struct TerrainRequestMapper; -impl View for TerrainRequestMapper { +pub struct MavResultMapper; + +impl View for MavResultMapper { type V = Self; + open spec fn view(&self) -> Self::V { *self } } -impl SpecIso for TerrainRequestMapper { - type Src = SpecTerrainRequestInner; - type Dst = SpecTerrainRequest; + +impl SpecPartialIso for MavResultMapper { + type Src = MavResultInner; + type Dst = MavResult; } -impl SpecIsoProof for TerrainRequestMapper { + +impl SpecPartialIsoProof for MavResultMapper { proof fn spec_iso(s: Self::Src) { - assert(Self::Src::spec_from(Self::Dst::spec_from(s)) == s); + assert( + Self::spec_apply(s) matches Ok(v) ==> { + &&& Self::spec_rev_apply(v) is Ok + &&& Self::spec_rev_apply(v) matches Ok(s_) && s == s_ + }); } + proof fn spec_iso_rev(s: Self::Dst) { - assert(Self::Dst::spec_from(Self::Src::spec_from(s)) == s); + assert( + Self::spec_rev_apply(s) matches Ok(v) ==> { + &&& Self::spec_apply(v) is Ok + &&& Self::spec_apply(v) matches Ok(s_) && s == s_ + }); } } -impl<'a> Iso<'a> for TerrainRequestMapper { - type Src = TerrainRequestInner; - type Dst = TerrainRequest; - type RefSrc = TerrainRequestInnerRef<'a>; + +impl<'a> PartialIso<'a> for MavResultMapper { + type Src = MavResultInner; + type Dst = MavResult; + type RefSrc = MavResultInnerRef<'a>; } -type SpecTerrainRequestCombinatorAlias1 = (U16Le, U64Le); -type SpecTerrainRequestCombinatorAlias2 = (U32Le, SpecTerrainRequestCombinatorAlias1); -type SpecTerrainRequestCombinatorAlias3 = (U32Le, SpecTerrainRequestCombinatorAlias2); -pub struct SpecTerrainRequestCombinator(pub SpecTerrainRequestCombinatorAlias); -impl SpecCombinator for SpecTerrainRequestCombinator { - type Type = SpecTerrainRequest; + +pub struct SpecMavResultCombinator(pub SpecMavResultCombinatorAlias); + +impl SpecCombinator for SpecMavResultCombinator { + type Type = SpecMavResult; open spec fn requires(&self) -> bool { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } -impl SecureSpecCombinator for SpecTerrainRequestCombinator { - open spec fn is_prefix_secure() -> bool - { SpecTerrainRequestCombinatorAlias::is_prefix_secure() } +impl SecureSpecCombinator for SpecMavResultCombinator { + open spec fn is_prefix_secure() -> bool + { SpecMavResultCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } -pub type SpecTerrainRequestCombinatorAlias = Mapped; -type TerrainRequestCombinatorAlias1 = (U16Le, U64Le); -type TerrainRequestCombinatorAlias2 = (U32Le, TerrainRequestCombinator1); -type TerrainRequestCombinatorAlias3 = (U32Le, TerrainRequestCombinator2); -pub struct TerrainRequestCombinator1(pub TerrainRequestCombinatorAlias1); -impl View for TerrainRequestCombinator1 { - type V = SpecTerrainRequestCombinatorAlias1; - open spec fn view(&self) -> Self::V { self.0@ } -} -impl_wrapper_combinator!(TerrainRequestCombinator1, TerrainRequestCombinatorAlias1); - -pub struct TerrainRequestCombinator2(pub TerrainRequestCombinatorAlias2); -impl View for TerrainRequestCombinator2 { - type V = SpecTerrainRequestCombinatorAlias2; - open spec fn view(&self) -> Self::V { self.0@ } -} -impl_wrapper_combinator!(TerrainRequestCombinator2, TerrainRequestCombinatorAlias2); - -pub struct TerrainRequestCombinator3(pub TerrainRequestCombinatorAlias3); -impl View for TerrainRequestCombinator3 { - type V = SpecTerrainRequestCombinatorAlias3; - open spec fn view(&self) -> Self::V { self.0@ } -} -impl_wrapper_combinator!(TerrainRequestCombinator3, TerrainRequestCombinatorAlias3); +pub type SpecMavResultCombinatorAlias = TryMap; -pub struct TerrainRequestCombinator(pub TerrainRequestCombinatorAlias); +pub struct MavResultCombinator(pub MavResultCombinatorAlias); -impl View for TerrainRequestCombinator { - type V = SpecTerrainRequestCombinator; - open spec fn view(&self) -> Self::V { SpecTerrainRequestCombinator(self.0@) } +impl View for MavResultCombinator { + type V = SpecMavResultCombinator; + open spec fn view(&self) -> Self::V { SpecMavResultCombinator(self.0@) } } -impl<'a> Combinator<'a, &'a [u8], Vec> for TerrainRequestCombinator { - type Type = TerrainRequest; +impl<'a> Combinator<'a, &'a [u8], Vec> for MavResultCombinator { + type Type = MavResult; type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} -pub type TerrainRequestCombinatorAlias = Mapped; + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} +pub type MavResultCombinatorAlias = TryMap; -pub open spec fn spec_terrain_request() -> SpecTerrainRequestCombinator { - SpecTerrainRequestCombinator( - Mapped { - inner: (U32Le, (U32Le, (U16Le, U64Le))), - mapper: TerrainRequestMapper, - }) +pub open spec fn spec_mav_result() -> SpecMavResultCombinator { + SpecMavResultCombinator(TryMap { inner: U8, mapper: MavResultMapper }) } -pub fn terrain_request<'a>() -> (o: TerrainRequestCombinator) - ensures o@ == spec_terrain_request(), +pub fn mav_result<'a>() -> (o: MavResultCombinator) + ensures o@ == spec_mav_result(), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { - let combinator = TerrainRequestCombinator( - Mapped { - inner: TerrainRequestCombinator3((U32Le, TerrainRequestCombinator2((U32Le, TerrainRequestCombinator1((U16Le, U64Le)))))), - mapper: TerrainRequestMapper, - }); - assert({ - &&& combinator@ == spec_terrain_request() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + let combinator = MavResultCombinator(TryMap { inner: U8, mapper: MavResultMapper }); + // assert({ + // &&& combinator@ == spec_mav_result() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } -pub fn parse_terrain_request<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) +pub fn parse_mav_result<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, ensures - res matches Ok((n, v)) ==> spec_terrain_request().spec_parse(input@) == Some((n as int, v@)), - spec_terrain_request().spec_parse(input@) matches Some((n, v)) + res matches Ok((n, v)) ==> spec_mav_result().spec_parse(input@) == Some((n as int, v@)), + spec_mav_result().spec_parse(input@) matches Some((n, v)) ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_terrain_request().spec_parse(input@) is None, - spec_terrain_request().spec_parse(input@) is None ==> res is Err, + res is Err ==> spec_mav_result().spec_parse(input@) is None, + spec_mav_result().spec_parse(input@) is None ==> res is Err, { - let combinator = terrain_request(); + let combinator = mav_result(); <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) } -pub fn serialize_terrain_request<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) +pub fn serialize_mav_result<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) requires pos <= old(data)@.len() <= usize::MAX, - spec_terrain_request().wf(v@), + spec_mav_result().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_terrain_request().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_terrain_request().spec_serialize(v@)) + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_mav_result().spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mav_result().spec_serialize(v@)) }, { - let combinator = terrain_request(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + let combinator = mav_result(); + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } -pub fn terrain_request_len<'a>(v: >>::SType) -> (serialize_len: usize) +pub fn mav_result_len<'a>(v: >>::SType) -> (serialize_len: usize) requires - spec_terrain_request().wf(v@), - spec_terrain_request().spec_serialize(v@).len() <= usize::MAX, + spec_mav_result().wf(v@), + spec_mav_result().spec_serialize(v@).len() <= usize::MAX, ensures - serialize_len == spec_terrain_request().spec_serialize(v@).len(), + serialize_len == spec_mav_result().spec_serialize(v@).len(), { - let combinator = terrain_request(); + let combinator = mav_result(); <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) } -pub spec const SPEC_ProtocolMagic_MavLink1: u8 = 254; -pub spec const SPEC_ProtocolMagic_MavLink2: u8 = 253; -pub exec static EXEC_ProtocolMagic_MavLink1: u8 ensures EXEC_ProtocolMagic_MavLink1 == SPEC_ProtocolMagic_MavLink1 { 254 } -pub exec static EXEC_ProtocolMagic_MavLink2: u8 ensures EXEC_ProtocolMagic_MavLink2 == SPEC_ProtocolMagic_MavLink2 { 253 } - -#[derive(Structural, Debug, Copy, Clone, PartialEq, Eq)] -pub enum ProtocolMagic { - MavLink1 = 254, -MavLink2 = 253 +pub enum SpecMavlinkV2MsgSignature { + Variant0(Seq), + Variant1(Seq), } -pub type SpecProtocolMagic = ProtocolMagic; -pub type ProtocolMagicInner = u8; +pub type SpecMavlinkV2MsgSignatureInner = Either, Seq>; -pub type ProtocolMagicInnerRef<'a> = &'a u8; +impl SpecFrom for SpecMavlinkV2MsgSignatureInner { + open spec fn spec_from(m: SpecMavlinkV2MsgSignature) -> SpecMavlinkV2MsgSignatureInner { + match m { + SpecMavlinkV2MsgSignature::Variant0(m) => Either::Left(m), + SpecMavlinkV2MsgSignature::Variant1(m) => Either::Right(m), + } + } -impl View for ProtocolMagic { - type V = Self; +} - open spec fn view(&self) -> Self::V { - *self + +impl SpecFrom for SpecMavlinkV2MsgSignature { + open spec fn spec_from(m: SpecMavlinkV2MsgSignatureInner) -> SpecMavlinkV2MsgSignature { + match m { + Either::Left(m) => SpecMavlinkV2MsgSignature::Variant0(m), + Either::Right(m) => SpecMavlinkV2MsgSignature::Variant1(m), + } } + } -impl SpecTryFrom for ProtocolMagic { - type Error = (); - open spec fn spec_try_from(v: ProtocolMagicInner) -> Result { - match v { - 254u8 => Ok(ProtocolMagic::MavLink1), - 253u8 => Ok(ProtocolMagic::MavLink2), - _ => Err(()), - } - } + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum MavlinkV2MsgSignature<'a> { + Variant0(&'a [u8]), + Variant1(&'a [u8]), } -impl SpecTryFrom for ProtocolMagicInner { - type Error = (); +pub type MavlinkV2MsgSignatureInner<'a> = Either<&'a [u8], &'a [u8]>; - open spec fn spec_try_from(v: ProtocolMagic) -> Result { - match v { - ProtocolMagic::MavLink1 => Ok(SPEC_ProtocolMagic_MavLink1), - ProtocolMagic::MavLink2 => Ok(SPEC_ProtocolMagic_MavLink2), +pub type MavlinkV2MsgSignatureInnerRef<'a> = Either<&'a &'a [u8], &'a &'a [u8]>; + + +impl<'a> View for MavlinkV2MsgSignature<'a> { + type V = SpecMavlinkV2MsgSignature; + open spec fn view(&self) -> Self::V { + match self { + MavlinkV2MsgSignature::Variant0(m) => SpecMavlinkV2MsgSignature::Variant0(m@), + MavlinkV2MsgSignature::Variant1(m) => SpecMavlinkV2MsgSignature::Variant1(m@), } } } -impl TryFrom for ProtocolMagic { - type Error = (); - fn ex_try_from(v: ProtocolMagicInner) -> Result { - match v { - 254u8 => Ok(ProtocolMagic::MavLink1), - 253u8 => Ok(ProtocolMagic::MavLink2), - _ => Err(()), +impl<'a> From<&'a MavlinkV2MsgSignature<'a>> for MavlinkV2MsgSignatureInnerRef<'a> { + fn ex_from(m: &'a MavlinkV2MsgSignature<'a>) -> MavlinkV2MsgSignatureInnerRef<'a> { + match m { + MavlinkV2MsgSignature::Variant0(m) => Either::Left(m), + MavlinkV2MsgSignature::Variant1(m) => Either::Right(m), } } -} -impl<'a> TryFrom<&'a ProtocolMagic> for ProtocolMagicInnerRef<'a> { - type Error = (); +} - fn ex_try_from(v: &'a ProtocolMagic) -> Result, ()> { - match v { - ProtocolMagic::MavLink1 => Ok(&EXEC_ProtocolMagic_MavLink1), - ProtocolMagic::MavLink2 => Ok(&EXEC_ProtocolMagic_MavLink2), +impl<'a> From> for MavlinkV2MsgSignature<'a> { + fn ex_from(m: MavlinkV2MsgSignatureInner<'a>) -> MavlinkV2MsgSignature<'a> { + match m { + Either::Left(m) => MavlinkV2MsgSignature::Variant0(m), + Either::Right(m) => MavlinkV2MsgSignature::Variant1(m), } } + } -pub struct ProtocolMagicMapper; -impl View for ProtocolMagicMapper { +pub struct MavlinkV2MsgSignatureMapper; +impl View for MavlinkV2MsgSignatureMapper { type V = Self; - open spec fn view(&self) -> Self::V { *self } } - -impl SpecPartialIso for ProtocolMagicMapper { - type Src = ProtocolMagicInner; - type Dst = ProtocolMagic; +impl SpecIso for MavlinkV2MsgSignatureMapper { + type Src = SpecMavlinkV2MsgSignatureInner; + type Dst = SpecMavlinkV2MsgSignature; } - -impl SpecPartialIsoProof for ProtocolMagicMapper { - proof fn spec_iso(s: Self::Src) { - assert( - Self::spec_apply(s) matches Ok(v) ==> { - &&& Self::spec_rev_apply(v) is Ok - &&& Self::spec_rev_apply(v) matches Ok(s_) && s == s_ - }); +impl SpecIsoProof for MavlinkV2MsgSignatureMapper { + proof fn spec_iso(s: Self::Src) { + assert(Self::Src::spec_from(Self::Dst::spec_from(s)) == s); } - - proof fn spec_iso_rev(s: Self::Dst) { - assert( - Self::spec_rev_apply(s) matches Ok(v) ==> { - &&& Self::spec_apply(v) is Ok - &&& Self::spec_apply(v) matches Ok(s_) && s == s_ - }); + proof fn spec_iso_rev(s: Self::Dst) { + assert(Self::Dst::spec_from(Self::Src::spec_from(s)) == s); } } - -impl<'a> PartialIso<'a> for ProtocolMagicMapper { - type Src = ProtocolMagicInner; - type Dst = ProtocolMagic; - type RefSrc = ProtocolMagicInnerRef<'a>; +impl<'a> Iso<'a> for MavlinkV2MsgSignatureMapper { + type Src = MavlinkV2MsgSignatureInner<'a>; + type Dst = MavlinkV2MsgSignature<'a>; + type RefSrc = MavlinkV2MsgSignatureInnerRef<'a>; } +type SpecMavlinkV2MsgSignatureCombinatorAlias1 = Choice>, Cond>>; +pub struct SpecMavlinkV2MsgSignatureCombinator(pub SpecMavlinkV2MsgSignatureCombinatorAlias); -pub struct SpecProtocolMagicCombinator(pub SpecProtocolMagicCombinatorAlias); - -impl SpecCombinator for SpecProtocolMagicCombinator { - type Type = SpecProtocolMagic; +impl SpecCombinator for SpecMavlinkV2MsgSignatureCombinator { + type Type = SpecMavlinkV2MsgSignature; open spec fn requires(&self) -> bool { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } -impl SecureSpecCombinator for SpecProtocolMagicCombinator { - open spec fn is_prefix_secure() -> bool - { SpecProtocolMagicCombinatorAlias::is_prefix_secure() } +impl SecureSpecCombinator for SpecMavlinkV2MsgSignatureCombinator { + open spec fn is_prefix_secure() -> bool + { SpecMavlinkV2MsgSignatureCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } -pub type SpecProtocolMagicCombinatorAlias = TryMap; +pub type SpecMavlinkV2MsgSignatureCombinatorAlias = Mapped; +type MavlinkV2MsgSignatureCombinatorAlias1 = Choice>, Cond>>; +pub struct MavlinkV2MsgSignatureCombinator1(pub MavlinkV2MsgSignatureCombinatorAlias1); +impl View for MavlinkV2MsgSignatureCombinator1 { + type V = SpecMavlinkV2MsgSignatureCombinatorAlias1; + open spec fn view(&self) -> Self::V { self.0@ } +} +impl_wrapper_combinator!(MavlinkV2MsgSignatureCombinator1, MavlinkV2MsgSignatureCombinatorAlias1); -pub struct ProtocolMagicCombinator(pub ProtocolMagicCombinatorAlias); +pub struct MavlinkV2MsgSignatureCombinator(pub MavlinkV2MsgSignatureCombinatorAlias); -impl View for ProtocolMagicCombinator { - type V = SpecProtocolMagicCombinator; - open spec fn view(&self) -> Self::V { SpecProtocolMagicCombinator(self.0@) } +impl View for MavlinkV2MsgSignatureCombinator { + type V = SpecMavlinkV2MsgSignatureCombinator; + open spec fn view(&self) -> Self::V { SpecMavlinkV2MsgSignatureCombinator(self.0@) } } -impl<'a> Combinator<'a, &'a [u8], Vec> for ProtocolMagicCombinator { - type Type = ProtocolMagic; +impl<'a> Combinator<'a, &'a [u8], Vec> for MavlinkV2MsgSignatureCombinator { + type Type = MavlinkV2MsgSignature<'a>; type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} -pub type ProtocolMagicCombinatorAlias = TryMap; + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} +pub type MavlinkV2MsgSignatureCombinatorAlias = Mapped; -pub open spec fn spec_protocol_magic() -> SpecProtocolMagicCombinator { - SpecProtocolMagicCombinator(TryMap { inner: U8, mapper: ProtocolMagicMapper }) +pub open spec fn spec_mavlink_v2_msg_signature(incompat_flags: u8) -> SpecMavlinkV2MsgSignatureCombinator { + SpecMavlinkV2MsgSignatureCombinator(Mapped { inner: Choice(Cond { cond: incompat_flags == 1, inner: bytes::Fixed::<13> }, Cond { cond: !(incompat_flags == 1), inner: bytes::Fixed::<0> }), mapper: MavlinkV2MsgSignatureMapper }) } - -pub fn protocol_magic<'a>() -> (o: ProtocolMagicCombinator) - ensures o@ == spec_protocol_magic(), +pub fn mavlink_v2_msg_signature<'a>(incompat_flags: u8) -> (o: MavlinkV2MsgSignatureCombinator) + requires + spec_incompat_flags().wf(incompat_flags@), + + ensures o@ == spec_mavlink_v2_msg_signature(incompat_flags@), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { - let combinator = ProtocolMagicCombinator(TryMap { inner: U8, mapper: ProtocolMagicMapper }); - assert({ - &&& combinator@ == spec_protocol_magic() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + let combinator = MavlinkV2MsgSignatureCombinator(Mapped { inner: MavlinkV2MsgSignatureCombinator1(Choice::new(Cond { cond: incompat_flags == 1, inner: bytes::Fixed::<13> }, Cond { cond: !(incompat_flags == 1), inner: bytes::Fixed::<0> })), mapper: MavlinkV2MsgSignatureMapper }); + // assert({ + // &&& combinator@ == spec_mavlink_v2_msg_signature(incompat_flags@) + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } -pub fn parse_protocol_magic<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) +pub fn parse_mavlink_v2_msg_signature<'a>(input: &'a [u8], incompat_flags: u8) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, + spec_incompat_flags().wf(incompat_flags@), + ensures - res matches Ok((n, v)) ==> spec_protocol_magic().spec_parse(input@) == Some((n as int, v@)), - spec_protocol_magic().spec_parse(input@) matches Some((n, v)) + res matches Ok((n, v)) ==> spec_mavlink_v2_msg_signature(incompat_flags@).spec_parse(input@) == Some((n as int, v@)), + spec_mavlink_v2_msg_signature(incompat_flags@).spec_parse(input@) matches Some((n, v)) ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_protocol_magic().spec_parse(input@) is None, - spec_protocol_magic().spec_parse(input@) is None ==> res is Err, + res is Err ==> spec_mavlink_v2_msg_signature(incompat_flags@).spec_parse(input@) is None, + spec_mavlink_v2_msg_signature(incompat_flags@).spec_parse(input@) is None ==> res is Err, { - let combinator = protocol_magic(); + let combinator = mavlink_v2_msg_signature( incompat_flags ); <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) } -pub fn serialize_protocol_magic<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) +pub fn serialize_mavlink_v2_msg_signature<'a>(v: >>::SType, data: &mut Vec, pos: usize, incompat_flags: u8) -> (o: SResult) requires pos <= old(data)@.len() <= usize::MAX, - spec_protocol_magic().wf(v@), + spec_mavlink_v2_msg_signature(incompat_flags@).wf(v@), + spec_incompat_flags().wf(incompat_flags@), + ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_protocol_magic().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_protocol_magic().spec_serialize(v@)) + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_mavlink_v2_msg_signature(incompat_flags@).spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mavlink_v2_msg_signature(incompat_flags@).spec_serialize(v@)) }, { - let combinator = protocol_magic(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + let combinator = mavlink_v2_msg_signature( incompat_flags ); + combinator.serialize(v, &mut *data, pos) } -pub fn protocol_magic_len<'a>(v: >>::SType) -> (serialize_len: usize) +pub fn mavlink_v2_msg_signature_len<'a>(v: >>::SType, incompat_flags: u8) -> (serialize_len: usize) requires - spec_protocol_magic().wf(v@), - spec_protocol_magic().spec_serialize(v@).len() <= usize::MAX, + spec_mavlink_v2_msg_signature(incompat_flags@).wf(v@), + spec_mavlink_v2_msg_signature(incompat_flags@).spec_serialize(v@).len() <= usize::MAX, + spec_incompat_flags().wf(incompat_flags@), + ensures - serialize_len == spec_protocol_magic().spec_serialize(v@).len(), + serialize_len == spec_mavlink_v2_msg_signature(incompat_flags@).spec_serialize(v@).len(), { - let combinator = protocol_magic(); + let combinator = mavlink_v2_msg_signature( incompat_flags ); <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) } - - -pub struct SpecMavlinkV1Msg { - pub len: u8, - pub seq: u8, - pub sysid: u8, - pub compid: u8, - pub msgid: u8, - pub payload: Seq, - pub checksum: u16, -} - -pub type SpecMavlinkV1MsgInner = (u8, (u8, (u8, (u8, (u8, (Seq, u16)))))); - - -impl SpecFrom for SpecMavlinkV1MsgInner { - open spec fn spec_from(m: SpecMavlinkV1Msg) -> SpecMavlinkV1MsgInner { - (m.len, (m.seq, (m.sysid, (m.compid, (m.msgid, (m.payload, m.checksum)))))) - } -} - -impl SpecFrom for SpecMavlinkV1Msg { - open spec fn spec_from(m: SpecMavlinkV1MsgInner) -> SpecMavlinkV1Msg { - let (len, (seq, (sysid, (compid, (msgid, (payload, checksum)))))) = m; - SpecMavlinkV1Msg { len, seq, sysid, compid, msgid, payload, checksum } - } -} -#[derive(Debug, Clone, PartialEq, Eq)] - -pub struct MavlinkV1Msg<'a> { - pub len: u8, - pub seq: u8, - pub sysid: u8, - pub compid: u8, - pub msgid: u8, - pub payload: &'a [u8], - pub checksum: u16, -} - -impl View for MavlinkV1Msg<'_> { - type V = SpecMavlinkV1Msg; - - open spec fn view(&self) -> Self::V { - SpecMavlinkV1Msg { - len: self.len@, - seq: self.seq@, - sysid: self.sysid@, - compid: self.compid@, - msgid: self.msgid@, - payload: self.payload@, - checksum: self.checksum@, - } - } -} -pub type MavlinkV1MsgInner<'a> = (u8, (u8, (u8, (u8, (u8, (&'a [u8], u16)))))); - -pub type MavlinkV1MsgInnerRef<'a> = (&'a u8, (&'a u8, (&'a u8, (&'a u8, (&'a u8, (&'a &'a [u8], &'a u16)))))); -impl<'a> From<&'a MavlinkV1Msg<'a>> for MavlinkV1MsgInnerRef<'a> { - fn ex_from(m: &'a MavlinkV1Msg) -> MavlinkV1MsgInnerRef<'a> { - (&m.len, (&m.seq, (&m.sysid, (&m.compid, (&m.msgid, (&m.payload, &m.checksum)))))) - } -} - -impl<'a> From> for MavlinkV1Msg<'a> { - fn ex_from(m: MavlinkV1MsgInner) -> MavlinkV1Msg { - let (len, (seq, (sysid, (compid, (msgid, (payload, checksum)))))) = m; - MavlinkV1Msg { len, seq, sysid, compid, msgid, payload, checksum } - } +pub mod MessageIds { + use super::*; + pub spec const SPEC_CommandInt: u32 = 75; + pub spec const SPEC_CommandLong: u32 = 76; + pub spec const SPEC_CommandAck: u32 = 77; + pub spec const SPEC_CommandCancel: u32 = 80; + pub spec const SPEC_TerrainRequest: u32 = 134; + pub spec const SPEC_Reserved: u32 = 8388608; + pub exec const CommandInt: u32 ensures CommandInt == SPEC_CommandInt { 75 } + pub exec const CommandLong: u32 ensures CommandLong == SPEC_CommandLong { 76 } + pub exec const CommandAck: u32 ensures CommandAck == SPEC_CommandAck { 77 } + pub exec const CommandCancel: u32 ensures CommandCancel == SPEC_CommandCancel { 80 } + pub exec const TerrainRequest: u32 ensures TerrainRequest == SPEC_TerrainRequest { 134 } + pub exec const Reserved: u32 ensures Reserved == SPEC_Reserved { 8388608 } } -pub struct MavlinkV1MsgMapper; -impl View for MavlinkV1MsgMapper { - type V = Self; - open spec fn view(&self) -> Self::V { - *self - } -} -impl SpecIso for MavlinkV1MsgMapper { - type Src = SpecMavlinkV1MsgInner; - type Dst = SpecMavlinkV1Msg; -} -impl SpecIsoProof for MavlinkV1MsgMapper { - proof fn spec_iso(s: Self::Src) { - assert(Self::Src::spec_from(Self::Dst::spec_from(s)) == s); - } - proof fn spec_iso_rev(s: Self::Dst) { - assert(Self::Dst::spec_from(Self::Src::spec_from(s)) == s); - } -} -impl<'a> Iso<'a> for MavlinkV1MsgMapper { - type Src = MavlinkV1MsgInner<'a>; - type Dst = MavlinkV1Msg<'a>; - type RefSrc = MavlinkV1MsgInnerRef<'a>; -} -pub struct SpecMavlinkV1MsgCombinator(pub SpecMavlinkV1MsgCombinatorAlias); +pub struct SpecMessageIdsCombinator(pub SpecMessageIdsCombinatorAlias); -impl SpecCombinator for SpecMavlinkV1MsgCombinator { - type Type = SpecMavlinkV1Msg; +impl SpecCombinator for SpecMessageIdsCombinator { + type Type = u24; open spec fn requires(&self) -> bool { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } -impl SecureSpecCombinator for SpecMavlinkV1MsgCombinator { - open spec fn is_prefix_secure() -> bool - { SpecMavlinkV1MsgCombinatorAlias::is_prefix_secure() } +impl SecureSpecCombinator for SpecMessageIdsCombinator { + open spec fn is_prefix_secure() -> bool + { SpecMessageIdsCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } -pub type SpecMavlinkV1MsgCombinatorAlias = Mapped, (Refined, (U8, (bytes::Variable, U16Le)))))>, MavlinkV1MsgMapper>; -pub struct Predicate3768926651291043512; -impl View for Predicate3768926651291043512 { - type V = Self; - - open spec fn view(&self) -> Self::V { - *self - } -} -impl Pred for Predicate3768926651291043512 { - fn apply(&self, i: &u8) -> bool { - let i = (*i); - (i >= 1) - } -} -impl SpecPred for Predicate3768926651291043512 { - open spec fn spec_apply(&self, i: &u8) -> bool { - let i = (*i); - (i >= 1) - } -} +pub type SpecMessageIdsCombinatorAlias = U24Le; -pub struct MavlinkV1MsgCombinator(pub MavlinkV1MsgCombinatorAlias); +pub struct MessageIdsCombinator(pub MessageIdsCombinatorAlias); -impl View for MavlinkV1MsgCombinator { - type V = SpecMavlinkV1MsgCombinator; - open spec fn view(&self) -> Self::V { SpecMavlinkV1MsgCombinator(self.0@) } +impl View for MessageIdsCombinator { + type V = SpecMessageIdsCombinator; + open spec fn view(&self) -> Self::V { SpecMessageIdsCombinator(self.0@) } } -impl<'a> Combinator<'a, &'a [u8], Vec> for MavlinkV1MsgCombinator { - type Type = MavlinkV1Msg<'a>; +impl<'a> Combinator<'a, &'a [u8], Vec> for MessageIdsCombinator { + type Type = u24; type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} -pub type MavlinkV1MsgCombinatorAlias = Mapped, (Refined, (U8, (bytes::Variable, U16Le))))), MavlinkV1MsgCont0>, MavlinkV1MsgMapper>; - - -pub open spec fn spec_mavlink_v1_msg() -> SpecMavlinkV1MsgCombinator { - SpecMavlinkV1MsgCombinator( - Mapped { - inner: Pair::spec_new(U8, |deps| spec_mavlink_v1_msg_cont0(deps)), - mapper: MavlinkV1MsgMapper, - }) -} - -pub open spec fn spec_mavlink_v1_msg_cont0(deps: u8) -> (U8, (Refined, (Refined, (U8, (bytes::Variable, U16Le))))) { - let len = deps; - (U8, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (U8, (bytes::Variable(len.spec_into()), U16Le))))) + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } +pub type MessageIdsCombinatorAlias = U24Le; -impl View for MavlinkV1MsgCont0 { - type V = spec_fn(u8) -> (U8, (Refined, (Refined, (U8, (bytes::Variable, U16Le))))); - open spec fn view(&self) -> Self::V { - |deps: u8| { - spec_mavlink_v1_msg_cont0(deps) - } - } +pub open spec fn spec_message_ids() -> SpecMessageIdsCombinator { + SpecMessageIdsCombinator(U24Le) } -pub fn mavlink_v1_msg<'a>() -> (o: MavlinkV1MsgCombinator) - ensures o@ == spec_mavlink_v1_msg(), +pub fn message_ids<'a>() -> (o: MessageIdsCombinator) + ensures o@ == spec_message_ids(), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { - let combinator = MavlinkV1MsgCombinator( - Mapped { - inner: Pair::new(U8, MavlinkV1MsgCont0), - mapper: MavlinkV1MsgMapper, - }); - assert({ - &&& combinator@ == spec_mavlink_v1_msg() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + let combinator = MessageIdsCombinator(U24Le); + // assert({ + // &&& combinator@ == spec_message_ids() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } -pub fn parse_mavlink_v1_msg<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) +pub fn parse_message_ids<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, ensures - res matches Ok((n, v)) ==> spec_mavlink_v1_msg().spec_parse(input@) == Some((n as int, v@)), - spec_mavlink_v1_msg().spec_parse(input@) matches Some((n, v)) + res matches Ok((n, v)) ==> spec_message_ids().spec_parse(input@) == Some((n as int, v@)), + spec_message_ids().spec_parse(input@) matches Some((n, v)) ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_mavlink_v1_msg().spec_parse(input@) is None, - spec_mavlink_v1_msg().spec_parse(input@) is None ==> res is Err, + res is Err ==> spec_message_ids().spec_parse(input@) is None, + spec_message_ids().spec_parse(input@) is None ==> res is Err, { - let combinator = mavlink_v1_msg(); + let combinator = message_ids(); <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) } -pub fn serialize_mavlink_v1_msg<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) +pub fn serialize_message_ids<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) requires pos <= old(data)@.len() <= usize::MAX, - spec_mavlink_v1_msg().wf(v@), + spec_message_ids().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_mavlink_v1_msg().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mavlink_v1_msg().spec_serialize(v@)) + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_message_ids().spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_message_ids().spec_serialize(v@)) }, { - let combinator = mavlink_v1_msg(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + let combinator = message_ids(); + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } -pub fn mavlink_v1_msg_len<'a>(v: >>::SType) -> (serialize_len: usize) +pub fn message_ids_len<'a>(v: >>::SType) -> (serialize_len: usize) requires - spec_mavlink_v1_msg().wf(v@), - spec_mavlink_v1_msg().spec_serialize(v@).len() <= usize::MAX, + spec_message_ids().wf(v@), + spec_message_ids().spec_serialize(v@).len() <= usize::MAX, ensures - serialize_len == spec_mavlink_v1_msg().spec_serialize(v@).len(), + serialize_len == spec_message_ids().spec_serialize(v@).len(), { - let combinator = mavlink_v1_msg(); + let combinator = message_ids(); <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) } -pub struct MavlinkV1MsgCont0; -type MavlinkV1MsgCont0Type<'a, 'b> = &'b u8; -type MavlinkV1MsgCont0SType<'a, 'x> = &'x u8; -type MavlinkV1MsgCont0Input<'a, 'b, 'x> = POrSType, MavlinkV1MsgCont0SType<'a, 'x>>; -impl<'a, 'b, 'x> Continuation> for MavlinkV1MsgCont0 { - type Output = (U8, (Refined, (Refined, (U8, (bytes::Variable, U16Le))))); + + +pub struct SpecCommandLong { + pub target_system: u8, + pub target_component: u8, + pub command: u16, + pub confirmation: u8, + pub param1: u32, + pub param2: u32, + pub param3: u32, + pub param4: u32, + pub param5: u32, + pub param6: u32, + pub param7: u32, +} - open spec fn requires(&self, deps: MavlinkV1MsgCont0Input<'a, 'b, 'x>) -> bool { true } +pub type SpecCommandLongInner = (u8, (u8, (u16, (u8, (u32, (u32, (u32, (u32, (u32, (u32, u32)))))))))); - open spec fn ensures(&self, deps: MavlinkV1MsgCont0Input<'a, 'b, 'x>, o: Self::Output) -> bool { - o@ == spec_mavlink_v1_msg_cont0(deps@) - } - fn apply(&self, deps: MavlinkV1MsgCont0Input<'a, 'b, 'x>) -> Self::Output { - match deps { - POrSType::P(deps) => { - let len = *deps; - (U8, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (U8, (bytes::Variable(len.ex_into()), U16Le))))) - } - POrSType::S(deps) => { - let len = deps; - let len = *len; - (U8, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (U8, (bytes::Variable(len.ex_into()), U16Le))))) - } - } - } -} - -pub mod IncompatFlags { - use super::*; - pub spec const SPEC_Signed: u8 = 1; - pub exec const Signed: u8 ensures Signed == SPEC_Signed { 1 } -} - - -pub struct SpecIncompatFlagsCombinator(pub SpecIncompatFlagsCombinatorAlias); - -impl SpecCombinator for SpecIncompatFlagsCombinator { - type Type = u8; - open spec fn requires(&self) -> bool - { self.0.requires() } - open spec fn wf(&self, v: Self::Type) -> bool - { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> - { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq - { self.0.spec_serialize(v) } -} -impl SecureSpecCombinator for SpecIncompatFlagsCombinator { - open spec fn is_prefix_secure() -> bool - { SpecIncompatFlagsCombinatorAlias::is_prefix_secure() } - proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) - { self.0.theorem_serialize_parse_roundtrip(v) } - proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) - { self.0.theorem_parse_serialize_roundtrip(buf) } - proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) - { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) - { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool - { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) - { self.0.lemma_parse_productive(s) } -} -pub type SpecIncompatFlagsCombinatorAlias = U8; - -pub struct IncompatFlagsCombinator(pub IncompatFlagsCombinatorAlias); - -impl View for IncompatFlagsCombinator { - type V = SpecIncompatFlagsCombinator; - open spec fn view(&self) -> Self::V { SpecIncompatFlagsCombinator(self.0@) } -} -impl<'a> Combinator<'a, &'a [u8], Vec> for IncompatFlagsCombinator { - type Type = u8; - type SType = &'a Self::Type; - fn length(&self, v: Self::SType) -> usize - { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool - { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) - { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } - fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} -pub type IncompatFlagsCombinatorAlias = U8; - - -pub open spec fn spec_incompat_flags() -> SpecIncompatFlagsCombinator { - SpecIncompatFlagsCombinator(U8) -} - - -pub fn incompat_flags<'a>() -> (o: IncompatFlagsCombinator) - ensures o@ == spec_incompat_flags(), - o@.requires(), - <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), -{ - let combinator = IncompatFlagsCombinator(U8); - assert({ - &&& combinator@ == spec_incompat_flags() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); - combinator -} - -pub fn parse_incompat_flags<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) - requires - input.len() <= usize::MAX, - ensures - res matches Ok((n, v)) ==> spec_incompat_flags().spec_parse(input@) == Some((n as int, v@)), - spec_incompat_flags().spec_parse(input@) matches Some((n, v)) - ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_incompat_flags().spec_parse(input@) is None, - spec_incompat_flags().spec_parse(input@) is None ==> res is Err, -{ - let combinator = incompat_flags(); - <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) -} - -pub fn serialize_incompat_flags<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) - requires - pos <= old(data)@.len() <= usize::MAX, - spec_incompat_flags().wf(v@), - ensures - o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_incompat_flags().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_incompat_flags().spec_serialize(v@)) - }, -{ - let combinator = incompat_flags(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) -} - -pub fn incompat_flags_len<'a>(v: >>::SType) -> (serialize_len: usize) - requires - spec_incompat_flags().wf(v@), - spec_incompat_flags().spec_serialize(v@).len() <= usize::MAX, - ensures - serialize_len == spec_incompat_flags().spec_serialize(v@).len(), -{ - let combinator = incompat_flags(); - <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) -} - - -pub mod MessageIds { - use super::*; - pub spec const SPEC_CommandInt: u32 = 75; - pub spec const SPEC_CommandLong: u32 = 76; - pub spec const SPEC_CommandAck: u32 = 77; - pub spec const SPEC_CommandCancel: u32 = 80; - pub spec const SPEC_TerrainRequest: u32 = 134; - pub spec const SPEC_Reserved: u32 = 8388608; - pub exec const CommandInt: u32 ensures CommandInt == SPEC_CommandInt { 75 } - pub exec const CommandLong: u32 ensures CommandLong == SPEC_CommandLong { 76 } - pub exec const CommandAck: u32 ensures CommandAck == SPEC_CommandAck { 77 } - pub exec const CommandCancel: u32 ensures CommandCancel == SPEC_CommandCancel { 80 } - pub exec const TerrainRequest: u32 ensures TerrainRequest == SPEC_TerrainRequest { 134 } - pub exec const Reserved: u32 ensures Reserved == SPEC_Reserved { 8388608 } -} - - -pub struct SpecMessageIdsCombinator(pub SpecMessageIdsCombinatorAlias); - -impl SpecCombinator for SpecMessageIdsCombinator { - type Type = u24; - open spec fn requires(&self) -> bool - { self.0.requires() } - open spec fn wf(&self, v: Self::Type) -> bool - { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> - { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq - { self.0.spec_serialize(v) } -} -impl SecureSpecCombinator for SpecMessageIdsCombinator { - open spec fn is_prefix_secure() -> bool - { SpecMessageIdsCombinatorAlias::is_prefix_secure() } - proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) - { self.0.theorem_serialize_parse_roundtrip(v) } - proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) - { self.0.theorem_parse_serialize_roundtrip(buf) } - proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) - { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) - { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool - { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) - { self.0.lemma_parse_productive(s) } -} -pub type SpecMessageIdsCombinatorAlias = U24Le; - -pub struct MessageIdsCombinator(pub MessageIdsCombinatorAlias); - -impl View for MessageIdsCombinator { - type V = SpecMessageIdsCombinator; - open spec fn view(&self) -> Self::V { SpecMessageIdsCombinator(self.0@) } -} -impl<'a> Combinator<'a, &'a [u8], Vec> for MessageIdsCombinator { - type Type = u24; - type SType = &'a Self::Type; - fn length(&self, v: Self::SType) -> usize - { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool - { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) - { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } - fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} -pub type MessageIdsCombinatorAlias = U24Le; - - -pub open spec fn spec_message_ids() -> SpecMessageIdsCombinator { - SpecMessageIdsCombinator(U24Le) -} - - -pub fn message_ids<'a>() -> (o: MessageIdsCombinator) - ensures o@ == spec_message_ids(), - o@.requires(), - <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), -{ - let combinator = MessageIdsCombinator(U24Le); - assert({ - &&& combinator@ == spec_message_ids() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); - combinator -} - -pub fn parse_message_ids<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) - requires - input.len() <= usize::MAX, - ensures - res matches Ok((n, v)) ==> spec_message_ids().spec_parse(input@) == Some((n as int, v@)), - spec_message_ids().spec_parse(input@) matches Some((n, v)) - ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_message_ids().spec_parse(input@) is None, - spec_message_ids().spec_parse(input@) is None ==> res is Err, -{ - let combinator = message_ids(); - <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) -} - -pub fn serialize_message_ids<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) - requires - pos <= old(data)@.len() <= usize::MAX, - spec_message_ids().wf(v@), - ensures - o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_message_ids().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_message_ids().spec_serialize(v@)) - }, -{ - let combinator = message_ids(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) -} - -pub fn message_ids_len<'a>(v: >>::SType) -> (serialize_len: usize) - requires - spec_message_ids().wf(v@), - spec_message_ids().spec_serialize(v@).len() <= usize::MAX, - ensures - serialize_len == spec_message_ids().spec_serialize(v@).len(), -{ - let combinator = message_ids(); - <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) -} - - - -pub struct SpecCommandLong { - pub target_system: u8, - pub target_component: u8, - pub command: u16, - pub confirmation: u8, - pub param1: u32, - pub param2: u32, - pub param3: u32, - pub param4: u32, - pub param5: u32, - pub param6: u32, - pub param7: u32, -} - -pub type SpecCommandLongInner = (u8, (u8, (u16, (u8, (u32, (u32, (u32, (u32, (u32, (u32, u32)))))))))); - - -impl SpecFrom for SpecCommandLongInner { - open spec fn spec_from(m: SpecCommandLong) -> SpecCommandLongInner { - (m.target_system, (m.target_component, (m.command, (m.confirmation, (m.param1, (m.param2, (m.param3, (m.param4, (m.param5, (m.param6, m.param7)))))))))) +impl SpecFrom for SpecCommandLongInner { + open spec fn spec_from(m: SpecCommandLong) -> SpecCommandLongInner { + (m.target_system, (m.target_component, (m.command, (m.confirmation, (m.param1, (m.param2, (m.param3, (m.param4, (m.param5, (m.param6, m.param7)))))))))) } } @@ -1982,13 +1644,13 @@ impl SpecCombinator for SpecCommandLongCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecCommandLongCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecCommandLongCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -1996,11 +1658,11 @@ impl SecureSpecCombinator for SpecCommandLongCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecCommandLongCombinatorAlias = Mapped; @@ -2095,13 +1757,13 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CommandLongCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type CommandLongCombinatorAlias = Mapped; @@ -2124,11 +1786,11 @@ pub fn command_long<'a>() -> (o: CommandLongCombinator) inner: CommandLongCombinator10((U8, CommandLongCombinator9((U8, CommandLongCombinator8((mav_cmd(), CommandLongCombinator7((U8, CommandLongCombinator6((U32Le, CommandLongCombinator5((U32Le, CommandLongCombinator4((U32Le, CommandLongCombinator3((U32Le, CommandLongCombinator2((U32Le, CommandLongCombinator1((U32Le, U32Le)))))))))))))))))))), mapper: CommandLongMapper, }); - assert({ - &&& combinator@ == spec_command_long() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + // assert({ + // &&& combinator@ == spec_command_long() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } @@ -2152,14 +1814,14 @@ pub fn serialize_command_long<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_command_long().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_command_long().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_command_long().spec_serialize(v@)) }, { let combinator = command_long(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn command_long_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2175,50 +1837,23 @@ pub fn command_long_len<'a>(v: = &'a u8; +pub type ProtocolMagicInnerRef<'a> = &'a u8; -impl View for MavResult { +impl View for ProtocolMagic { type V = Self; open spec fn view(&self) -> Self::V { @@ -2226,91 +1861,55 @@ impl View for MavResult { } } -impl SpecTryFrom for MavResult { +impl SpecTryFrom for ProtocolMagic { type Error = (); - open spec fn spec_try_from(v: MavResultInner) -> Result { + open spec fn spec_try_from(v: ProtocolMagicInner) -> Result { match v { - 0u8 => Ok(MavResult::ACCEPTED), - 1u8 => Ok(MavResult::TEMPORARILY_REJECTED), - 2u8 => Ok(MavResult::DENIED), - 3u8 => Ok(MavResult::UNSUPPORTED), - 4u8 => Ok(MavResult::FAILED), - 5u8 => Ok(MavResult::IN_PROGRESS), - 6u8 => Ok(MavResult::CANCELLED), - 7u8 => Ok(MavResult::COMMAND_LONG_ONLY), - 8u8 => Ok(MavResult::COMMAND_INT_ONLY), - 9u8 => Ok(MavResult::COMMAND_UNSUPPORTED_MAV_FRAME), - 10u8 => Ok(MavResult::NOT_IN_CONTROL), + 254u8 => Ok(ProtocolMagic::MavLink1), + 253u8 => Ok(ProtocolMagic::MavLink2), _ => Err(()), } } } -impl SpecTryFrom for MavResultInner { +impl SpecTryFrom for ProtocolMagicInner { type Error = (); - open spec fn spec_try_from(v: MavResult) -> Result { + open spec fn spec_try_from(v: ProtocolMagic) -> Result { match v { - MavResult::ACCEPTED => Ok(SPEC_MavResult_ACCEPTED), - MavResult::TEMPORARILY_REJECTED => Ok(SPEC_MavResult_TEMPORARILY_REJECTED), - MavResult::DENIED => Ok(SPEC_MavResult_DENIED), - MavResult::UNSUPPORTED => Ok(SPEC_MavResult_UNSUPPORTED), - MavResult::FAILED => Ok(SPEC_MavResult_FAILED), - MavResult::IN_PROGRESS => Ok(SPEC_MavResult_IN_PROGRESS), - MavResult::CANCELLED => Ok(SPEC_MavResult_CANCELLED), - MavResult::COMMAND_LONG_ONLY => Ok(SPEC_MavResult_COMMAND_LONG_ONLY), - MavResult::COMMAND_INT_ONLY => Ok(SPEC_MavResult_COMMAND_INT_ONLY), - MavResult::COMMAND_UNSUPPORTED_MAV_FRAME => Ok(SPEC_MavResult_COMMAND_UNSUPPORTED_MAV_FRAME), - MavResult::NOT_IN_CONTROL => Ok(SPEC_MavResult_NOT_IN_CONTROL), + ProtocolMagic::MavLink1 => Ok(SPEC_ProtocolMagic_MavLink1), + ProtocolMagic::MavLink2 => Ok(SPEC_ProtocolMagic_MavLink2), } } } -impl TryFrom for MavResult { +impl TryFrom for ProtocolMagic { type Error = (); - fn ex_try_from(v: MavResultInner) -> Result { + fn ex_try_from(v: ProtocolMagicInner) -> Result { match v { - 0u8 => Ok(MavResult::ACCEPTED), - 1u8 => Ok(MavResult::TEMPORARILY_REJECTED), - 2u8 => Ok(MavResult::DENIED), - 3u8 => Ok(MavResult::UNSUPPORTED), - 4u8 => Ok(MavResult::FAILED), - 5u8 => Ok(MavResult::IN_PROGRESS), - 6u8 => Ok(MavResult::CANCELLED), - 7u8 => Ok(MavResult::COMMAND_LONG_ONLY), - 8u8 => Ok(MavResult::COMMAND_INT_ONLY), - 9u8 => Ok(MavResult::COMMAND_UNSUPPORTED_MAV_FRAME), - 10u8 => Ok(MavResult::NOT_IN_CONTROL), + 254u8 => Ok(ProtocolMagic::MavLink1), + 253u8 => Ok(ProtocolMagic::MavLink2), _ => Err(()), } } } -impl<'a> TryFrom<&'a MavResult> for MavResultInnerRef<'a> { +impl<'a> TryFrom<&'a ProtocolMagic> for ProtocolMagicInnerRef<'a> { type Error = (); - fn ex_try_from(v: &'a MavResult) -> Result, ()> { + fn ex_try_from(v: &'a ProtocolMagic) -> Result, ()> { match v { - MavResult::ACCEPTED => Ok(&EXEC_MavResult_ACCEPTED), - MavResult::TEMPORARILY_REJECTED => Ok(&EXEC_MavResult_TEMPORARILY_REJECTED), - MavResult::DENIED => Ok(&EXEC_MavResult_DENIED), - MavResult::UNSUPPORTED => Ok(&EXEC_MavResult_UNSUPPORTED), - MavResult::FAILED => Ok(&EXEC_MavResult_FAILED), - MavResult::IN_PROGRESS => Ok(&EXEC_MavResult_IN_PROGRESS), - MavResult::CANCELLED => Ok(&EXEC_MavResult_CANCELLED), - MavResult::COMMAND_LONG_ONLY => Ok(&EXEC_MavResult_COMMAND_LONG_ONLY), - MavResult::COMMAND_INT_ONLY => Ok(&EXEC_MavResult_COMMAND_INT_ONLY), - MavResult::COMMAND_UNSUPPORTED_MAV_FRAME => Ok(&EXEC_MavResult_COMMAND_UNSUPPORTED_MAV_FRAME), - MavResult::NOT_IN_CONTROL => Ok(&EXEC_MavResult_NOT_IN_CONTROL), + ProtocolMagic::MavLink1 => Ok(&EXEC_ProtocolMagic_MavLink1), + ProtocolMagic::MavLink2 => Ok(&EXEC_ProtocolMagic_MavLink2), } } } -pub struct MavResultMapper; +pub struct ProtocolMagicMapper; -impl View for MavResultMapper { +impl View for ProtocolMagicMapper { type V = Self; open spec fn view(&self) -> Self::V { @@ -2318,13 +1917,13 @@ impl View for MavResultMapper { } } -impl SpecPartialIso for MavResultMapper { - type Src = MavResultInner; - type Dst = MavResult; +impl SpecPartialIso for ProtocolMagicMapper { + type Src = ProtocolMagicInner; + type Dst = ProtocolMagic; } -impl SpecPartialIsoProof for MavResultMapper { - proof fn spec_iso(s: Self::Src) { +impl SpecPartialIsoProof for ProtocolMagicMapper { + proof fn spec_iso(s: Self::Src) { assert( Self::spec_apply(s) matches Ok(v) ==> { &&& Self::spec_rev_apply(v) is Ok @@ -2332,7 +1931,7 @@ impl SpecPartialIsoProof for MavResultMapper { }); } - proof fn spec_iso_rev(s: Self::Dst) { + proof fn spec_iso_rev(s: Self::Dst) { assert( Self::spec_rev_apply(s) matches Ok(v) ==> { &&& Self::spec_apply(v) is Ok @@ -2341,122 +1940,523 @@ impl SpecPartialIsoProof for MavResultMapper { } } -impl<'a> PartialIso<'a> for MavResultMapper { - type Src = MavResultInner; - type Dst = MavResult; - type RefSrc = MavResultInnerRef<'a>; +impl<'a> PartialIso<'a> for ProtocolMagicMapper { + type Src = ProtocolMagicInner; + type Dst = ProtocolMagic; + type RefSrc = ProtocolMagicInnerRef<'a>; } -pub struct SpecMavResultCombinator(pub SpecMavResultCombinatorAlias); +pub struct SpecProtocolMagicCombinator(pub SpecProtocolMagicCombinatorAlias); -impl SpecCombinator for SpecMavResultCombinator { - type Type = SpecMavResult; +impl SpecCombinator for SpecProtocolMagicCombinator { + type Type = SpecProtocolMagic; open spec fn requires(&self) -> bool { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } -impl SecureSpecCombinator for SpecMavResultCombinator { - open spec fn is_prefix_secure() -> bool - { SpecMavResultCombinatorAlias::is_prefix_secure() } +impl SecureSpecCombinator for SpecProtocolMagicCombinator { + open spec fn is_prefix_secure() -> bool + { SpecProtocolMagicCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } -pub type SpecMavResultCombinatorAlias = TryMap; +pub type SpecProtocolMagicCombinatorAlias = TryMap; -pub struct MavResultCombinator(pub MavResultCombinatorAlias); +pub struct ProtocolMagicCombinator(pub ProtocolMagicCombinatorAlias); -impl View for MavResultCombinator { - type V = SpecMavResultCombinator; - open spec fn view(&self) -> Self::V { SpecMavResultCombinator(self.0@) } +impl View for ProtocolMagicCombinator { + type V = SpecProtocolMagicCombinator; + open spec fn view(&self) -> Self::V { SpecProtocolMagicCombinator(self.0@) } } -impl<'a> Combinator<'a, &'a [u8], Vec> for MavResultCombinator { - type Type = MavResult; +impl<'a> Combinator<'a, &'a [u8], Vec> for ProtocolMagicCombinator { + type Type = ProtocolMagic; type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} -pub type MavResultCombinatorAlias = TryMap; + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} +pub type ProtocolMagicCombinatorAlias = TryMap; + + +pub open spec fn spec_protocol_magic() -> SpecProtocolMagicCombinator { + SpecProtocolMagicCombinator(TryMap { inner: U8, mapper: ProtocolMagicMapper }) +} + + +pub fn protocol_magic<'a>() -> (o: ProtocolMagicCombinator) + ensures o@ == spec_protocol_magic(), + o@.requires(), + <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), +{ + let combinator = ProtocolMagicCombinator(TryMap { inner: U8, mapper: ProtocolMagicMapper }); + // assert({ + // &&& combinator@ == spec_protocol_magic() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); + combinator +} + +pub fn parse_protocol_magic<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) + requires + input.len() <= usize::MAX, + ensures + res matches Ok((n, v)) ==> spec_protocol_magic().spec_parse(input@) == Some((n as int, v@)), + spec_protocol_magic().spec_parse(input@) matches Some((n, v)) + ==> res matches Ok((m, u)) && m == n && v == u@, + res is Err ==> spec_protocol_magic().spec_parse(input@) is None, + spec_protocol_magic().spec_parse(input@) is None ==> res is Err, +{ + let combinator = protocol_magic(); + <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) +} + +pub fn serialize_protocol_magic<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) + requires + pos <= old(data)@.len() <= usize::MAX, + spec_protocol_magic().wf(v@), + ensures + o matches Ok(n) ==> { + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_protocol_magic().spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_protocol_magic().spec_serialize(v@)) + }, +{ + let combinator = protocol_magic(); + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) +} + +pub fn protocol_magic_len<'a>(v: >>::SType) -> (serialize_len: usize) + requires + spec_protocol_magic().wf(v@), + spec_protocol_magic().spec_serialize(v@).len() <= usize::MAX, + ensures + serialize_len == spec_protocol_magic().spec_serialize(v@).len(), +{ + let combinator = protocol_magic(); + <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) +} + + + +pub struct SpecMavlinkV1Msg { + pub len: u8, + pub seq: u8, + pub sysid: u8, + pub compid: u8, + pub msgid: u8, + pub payload: Seq, + pub checksum: u16, +} + +pub type SpecMavlinkV1MsgInner = (u8, (u8, (u8, (u8, (u8, (Seq, u16)))))); + + +impl SpecFrom for SpecMavlinkV1MsgInner { + open spec fn spec_from(m: SpecMavlinkV1Msg) -> SpecMavlinkV1MsgInner { + (m.len, (m.seq, (m.sysid, (m.compid, (m.msgid, (m.payload, m.checksum)))))) + } +} + +impl SpecFrom for SpecMavlinkV1Msg { + open spec fn spec_from(m: SpecMavlinkV1MsgInner) -> SpecMavlinkV1Msg { + let (len, (seq, (sysid, (compid, (msgid, (payload, checksum)))))) = m; + SpecMavlinkV1Msg { len, seq, sysid, compid, msgid, payload, checksum } + } +} +#[derive(Debug, Clone, PartialEq, Eq)] + +pub struct MavlinkV1Msg<'a> { + pub len: u8, + pub seq: u8, + pub sysid: u8, + pub compid: u8, + pub msgid: u8, + pub payload: &'a [u8], + pub checksum: u16, +} + +impl View for MavlinkV1Msg<'_> { + type V = SpecMavlinkV1Msg; + + open spec fn view(&self) -> Self::V { + SpecMavlinkV1Msg { + len: self.len@, + seq: self.seq@, + sysid: self.sysid@, + compid: self.compid@, + msgid: self.msgid@, + payload: self.payload@, + checksum: self.checksum@, + } + } +} +pub type MavlinkV1MsgInner<'a> = (u8, (u8, (u8, (u8, (u8, (&'a [u8], u16)))))); + +pub type MavlinkV1MsgInnerRef<'a> = (&'a u8, (&'a u8, (&'a u8, (&'a u8, (&'a u8, (&'a &'a [u8], &'a u16)))))); +impl<'a> From<&'a MavlinkV1Msg<'a>> for MavlinkV1MsgInnerRef<'a> { + fn ex_from(m: &'a MavlinkV1Msg) -> MavlinkV1MsgInnerRef<'a> { + (&m.len, (&m.seq, (&m.sysid, (&m.compid, (&m.msgid, (&m.payload, &m.checksum)))))) + } +} + +impl<'a> From> for MavlinkV1Msg<'a> { + fn ex_from(m: MavlinkV1MsgInner) -> MavlinkV1Msg { + let (len, (seq, (sysid, (compid, (msgid, (payload, checksum)))))) = m; + MavlinkV1Msg { len, seq, sysid, compid, msgid, payload, checksum } + } +} + +pub struct MavlinkV1MsgMapper; +impl View for MavlinkV1MsgMapper { + type V = Self; + open spec fn view(&self) -> Self::V { + *self + } +} +impl SpecIso for MavlinkV1MsgMapper { + type Src = SpecMavlinkV1MsgInner; + type Dst = SpecMavlinkV1Msg; +} +impl SpecIsoProof for MavlinkV1MsgMapper { + proof fn spec_iso(s: Self::Src) { + assert(Self::Src::spec_from(Self::Dst::spec_from(s)) == s); + } + proof fn spec_iso_rev(s: Self::Dst) { + assert(Self::Dst::spec_from(Self::Src::spec_from(s)) == s); + } +} +impl<'a> Iso<'a> for MavlinkV1MsgMapper { + type Src = MavlinkV1MsgInner<'a>; + type Dst = MavlinkV1Msg<'a>; + type RefSrc = MavlinkV1MsgInnerRef<'a>; +} + +pub struct SpecMavlinkV1MsgCombinator(pub SpecMavlinkV1MsgCombinatorAlias); + +impl SpecCombinator for SpecMavlinkV1MsgCombinator { + type Type = SpecMavlinkV1Msg; + open spec fn requires(&self) -> bool + { self.0.requires() } + open spec fn wf(&self, v: Self::Type) -> bool + { self.0.wf(v) } + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + { self.0.spec_parse(s) } + open spec fn spec_serialize(&self, v: Self::Type) -> Seq + { self.0.spec_serialize(v) } +} +impl SecureSpecCombinator for SpecMavlinkV1MsgCombinator { + open spec fn is_prefix_secure() -> bool + { SpecMavlinkV1MsgCombinatorAlias::is_prefix_secure() } + proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) + { self.0.theorem_serialize_parse_roundtrip(v) } + proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) + { self.0.theorem_parse_serialize_roundtrip(buf) } + proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) + { self.0.lemma_prefix_secure(s1, s2) } + proof fn lemma_parse_length(&self, s: Seq) + { self.0.lemma_parse_length(s) } + open spec fn is_productive(&self) -> bool + { self.0.is_productive() } + proof fn lemma_parse_productive(&self, s: Seq) + { self.0.lemma_parse_productive(s) } +} +pub type SpecMavlinkV1MsgCombinatorAlias = Mapped, (Refined, (U8, (bytes::Variable, U16Le)))))>, MavlinkV1MsgMapper>; +pub struct Predicate3768926651291043512; +impl View for Predicate3768926651291043512 { + type V = Self; + + open spec fn view(&self) -> Self::V { + *self + } +} +impl Pred for Predicate3768926651291043512 { + fn apply(&self, i: &u8) -> bool { + let i = (*i); + (i >= 1) + } +} +impl SpecPred for Predicate3768926651291043512 { + open spec fn spec_apply(&self, i: &u8) -> bool { + let i = (*i); + (i >= 1) + } +} + +pub struct MavlinkV1MsgCombinator(pub MavlinkV1MsgCombinatorAlias); + +impl View for MavlinkV1MsgCombinator { + type V = SpecMavlinkV1MsgCombinator; + open spec fn view(&self) -> Self::V { SpecMavlinkV1MsgCombinator(self.0@) } +} +impl<'a> Combinator<'a, &'a [u8], Vec> for MavlinkV1MsgCombinator { + type Type = MavlinkV1Msg<'a>; + type SType = &'a Self::Type; + fn length(&self, v: Self::SType) -> usize + { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } + open spec fn ex_requires(&self) -> bool + { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } + fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} +pub type MavlinkV1MsgCombinatorAlias = Mapped, (Refined, (U8, (bytes::Variable, U16Le))))), MavlinkV1MsgCont0>, MavlinkV1MsgMapper>; + + +pub open spec fn spec_mavlink_v1_msg() -> SpecMavlinkV1MsgCombinator { + SpecMavlinkV1MsgCombinator( + Mapped { + inner: Pair::spec_new(U8, |deps| spec_mavlink_v1_msg_cont0(deps)), + mapper: MavlinkV1MsgMapper, + }) +} + +pub open spec fn spec_mavlink_v1_msg_cont0(deps: u8) -> (U8, (Refined, (Refined, (U8, (bytes::Variable, U16Le))))) { + let len = deps; + (U8, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (U8, (bytes::Variable((usize::spec_from(len)) as usize), U16Le))))) +} + +impl View for MavlinkV1MsgCont0 { + type V = spec_fn(u8) -> (U8, (Refined, (Refined, (U8, (bytes::Variable, U16Le))))); + + open spec fn view(&self) -> Self::V { + |deps: u8| { + spec_mavlink_v1_msg_cont0(deps) + } + } +} + + +pub fn mavlink_v1_msg<'a>() -> (o: MavlinkV1MsgCombinator) + ensures o@ == spec_mavlink_v1_msg(), + o@.requires(), + <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), +{ + let combinator = MavlinkV1MsgCombinator( + Mapped { + inner: Pair::new(U8, MavlinkV1MsgCont0), + mapper: MavlinkV1MsgMapper, + }); + // assert({ + // &&& combinator@ == spec_mavlink_v1_msg() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); + combinator +} + +pub fn parse_mavlink_v1_msg<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) + requires + input.len() <= usize::MAX, + ensures + res matches Ok((n, v)) ==> spec_mavlink_v1_msg().spec_parse(input@) == Some((n as int, v@)), + spec_mavlink_v1_msg().spec_parse(input@) matches Some((n, v)) + ==> res matches Ok((m, u)) && m == n && v == u@, + res is Err ==> spec_mavlink_v1_msg().spec_parse(input@) is None, + spec_mavlink_v1_msg().spec_parse(input@) is None ==> res is Err, +{ + let combinator = mavlink_v1_msg(); + <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) +} + +pub fn serialize_mavlink_v1_msg<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) + requires + pos <= old(data)@.len() <= usize::MAX, + spec_mavlink_v1_msg().wf(v@), + ensures + o matches Ok(n) ==> { + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_mavlink_v1_msg().spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mavlink_v1_msg().spec_serialize(v@)) + }, +{ + let combinator = mavlink_v1_msg(); + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) +} + +pub fn mavlink_v1_msg_len<'a>(v: >>::SType) -> (serialize_len: usize) + requires + spec_mavlink_v1_msg().wf(v@), + spec_mavlink_v1_msg().spec_serialize(v@).len() <= usize::MAX, + ensures + serialize_len == spec_mavlink_v1_msg().spec_serialize(v@).len(), +{ + let combinator = mavlink_v1_msg(); + <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) +} + +pub struct MavlinkV1MsgCont0; +type MavlinkV1MsgCont0Type<'a, 'b> = &'b u8; +type MavlinkV1MsgCont0SType<'a, 'x> = &'x u8; +type MavlinkV1MsgCont0Input<'a, 'b, 'x> = POrSType, MavlinkV1MsgCont0SType<'a, 'x>>; +impl<'a, 'b, 'x> Continuation> for MavlinkV1MsgCont0 { + type Output = (U8, (Refined, (Refined, (U8, (bytes::Variable, U16Le))))); + + open spec fn requires(&self, deps: MavlinkV1MsgCont0Input<'a, 'b, 'x>) -> bool { + &&& (U8).wf(deps@) + } + + open spec fn ensures(&self, deps: MavlinkV1MsgCont0Input<'a, 'b, 'x>, o: Self::Output) -> bool { + &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o) + &&& o@ == spec_mavlink_v1_msg_cont0(deps@) + } + + fn apply(&self, deps: MavlinkV1MsgCont0Input<'a, 'b, 'x>) -> Self::Output { + match deps { + POrSType::P(deps) => { + let len = deps; + let len = *len; + (U8, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (U8, (bytes::Variable((usize::ex_from(len)) as usize), U16Le))))) + } + POrSType::S(deps) => { + let len = deps; + let len = *len; + (U8, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (U8, (bytes::Variable((usize::ex_from(len)) as usize), U16Le))))) + } + } + } +} + +pub mod IncompatFlags { + use super::*; + pub spec const SPEC_Signed: u8 = 1; + pub exec const Signed: u8 ensures Signed == SPEC_Signed { 1 } +} + + +pub struct SpecIncompatFlagsCombinator(pub SpecIncompatFlagsCombinatorAlias); + +impl SpecCombinator for SpecIncompatFlagsCombinator { + type Type = u8; + open spec fn requires(&self) -> bool + { self.0.requires() } + open spec fn wf(&self, v: Self::Type) -> bool + { self.0.wf(v) } + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + { self.0.spec_parse(s) } + open spec fn spec_serialize(&self, v: Self::Type) -> Seq + { self.0.spec_serialize(v) } +} +impl SecureSpecCombinator for SpecIncompatFlagsCombinator { + open spec fn is_prefix_secure() -> bool + { SpecIncompatFlagsCombinatorAlias::is_prefix_secure() } + proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) + { self.0.theorem_serialize_parse_roundtrip(v) } + proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) + { self.0.theorem_parse_serialize_roundtrip(buf) } + proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) + { self.0.lemma_prefix_secure(s1, s2) } + proof fn lemma_parse_length(&self, s: Seq) + { self.0.lemma_parse_length(s) } + open spec fn is_productive(&self) -> bool + { self.0.is_productive() } + proof fn lemma_parse_productive(&self, s: Seq) + { self.0.lemma_parse_productive(s) } +} +pub type SpecIncompatFlagsCombinatorAlias = U8; + +pub struct IncompatFlagsCombinator(pub IncompatFlagsCombinatorAlias); + +impl View for IncompatFlagsCombinator { + type V = SpecIncompatFlagsCombinator; + open spec fn view(&self) -> Self::V { SpecIncompatFlagsCombinator(self.0@) } +} +impl<'a> Combinator<'a, &'a [u8], Vec> for IncompatFlagsCombinator { + type Type = u8; + type SType = &'a Self::Type; + fn length(&self, v: Self::SType) -> usize + { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } + open spec fn ex_requires(&self) -> bool + { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } + fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} +pub type IncompatFlagsCombinatorAlias = U8; -pub open spec fn spec_mav_result() -> SpecMavResultCombinator { - SpecMavResultCombinator(TryMap { inner: U8, mapper: MavResultMapper }) +pub open spec fn spec_incompat_flags() -> SpecIncompatFlagsCombinator { + SpecIncompatFlagsCombinator(U8) } -pub fn mav_result<'a>() -> (o: MavResultCombinator) - ensures o@ == spec_mav_result(), +pub fn incompat_flags<'a>() -> (o: IncompatFlagsCombinator) + ensures o@ == spec_incompat_flags(), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { - let combinator = MavResultCombinator(TryMap { inner: U8, mapper: MavResultMapper }); - assert({ - &&& combinator@ == spec_mav_result() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + let combinator = IncompatFlagsCombinator(U8); + // assert({ + // &&& combinator@ == spec_incompat_flags() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } -pub fn parse_mav_result<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) +pub fn parse_incompat_flags<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, ensures - res matches Ok((n, v)) ==> spec_mav_result().spec_parse(input@) == Some((n as int, v@)), - spec_mav_result().spec_parse(input@) matches Some((n, v)) + res matches Ok((n, v)) ==> spec_incompat_flags().spec_parse(input@) == Some((n as int, v@)), + spec_incompat_flags().spec_parse(input@) matches Some((n, v)) ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_mav_result().spec_parse(input@) is None, - spec_mav_result().spec_parse(input@) is None ==> res is Err, + res is Err ==> spec_incompat_flags().spec_parse(input@) is None, + spec_incompat_flags().spec_parse(input@) is None ==> res is Err, { - let combinator = mav_result(); + let combinator = incompat_flags(); <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) } -pub fn serialize_mav_result<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) +pub fn serialize_incompat_flags<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) requires pos <= old(data)@.len() <= usize::MAX, - spec_mav_result().wf(v@), + spec_incompat_flags().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_mav_result().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mav_result().spec_serialize(v@)) + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_incompat_flags().spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_incompat_flags().spec_serialize(v@)) }, { - let combinator = mav_result(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + let combinator = incompat_flags(); + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } -pub fn mav_result_len<'a>(v: >>::SType) -> (serialize_len: usize) +pub fn incompat_flags_len<'a>(v: >>::SType) -> (serialize_len: usize) requires - spec_mav_result().wf(v@), - spec_mav_result().spec_serialize(v@).len() <= usize::MAX, + spec_incompat_flags().wf(v@), + spec_incompat_flags().spec_serialize(v@).len() <= usize::MAX, ensures - serialize_len == spec_mav_result().spec_serialize(v@).len(), + serialize_len == spec_incompat_flags().spec_serialize(v@).len(), { - let combinator = mav_result(); + let combinator = incompat_flags(); <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) } @@ -2564,13 +2564,13 @@ impl SpecCombinator for SpecCommandAckCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecCommandAckCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecCommandAckCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -2578,11 +2578,11 @@ impl SecureSpecCombinator for SpecCommandAckCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecCommandAckCombinatorAlias = Mapped; @@ -2657,13 +2657,13 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CommandAckCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type CommandAckCombinatorAlias = Mapped; @@ -2686,11 +2686,11 @@ pub fn command_ack<'a>() -> (o: CommandAckCombinator) inner: CommandAckCombinator5((mav_cmd(), CommandAckCombinator4((mav_result(), CommandAckCombinator3((Refined { inner: U8, predicate: Predicate5789190955059586907 }, CommandAckCombinator2((U32Le, CommandAckCombinator1((U8, U8)))))))))), mapper: CommandAckMapper, }); - assert({ - &&& combinator@ == spec_command_ack() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + // assert({ + // &&& combinator@ == spec_command_ack() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } @@ -2701,37 +2701,268 @@ pub fn parse_command_ack<'a>(input: &'a [u8]) -> (res: PResult< spec_command_ack().spec_parse(input@) == Some((n as int, v@)), spec_command_ack().spec_parse(input@) matches Some((n, v)) ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_command_ack().spec_parse(input@) is None, - spec_command_ack().spec_parse(input@) is None ==> res is Err, + res is Err ==> spec_command_ack().spec_parse(input@) is None, + spec_command_ack().spec_parse(input@) is None ==> res is Err, +{ + let combinator = command_ack(); + <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) +} + +pub fn serialize_command_ack<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) + requires + pos <= old(data)@.len() <= usize::MAX, + spec_command_ack().wf(v@), + ensures + o matches Ok(n) ==> { + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_command_ack().spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_command_ack().spec_serialize(v@)) + }, +{ + let combinator = command_ack(); + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) +} + +pub fn command_ack_len<'a>(v: >>::SType) -> (serialize_len: usize) + requires + spec_command_ack().wf(v@), + spec_command_ack().spec_serialize(v@).len() <= usize::MAX, + ensures + serialize_len == spec_command_ack().spec_serialize(v@).len(), +{ + let combinator = command_ack(); + <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) +} + + + +pub struct SpecTerrainRequest { + pub lat: u32, + pub lon: u32, + pub grid_spacing: u16, + pub mask: u64, +} + +pub type SpecTerrainRequestInner = (u32, (u32, (u16, u64))); + + +impl SpecFrom for SpecTerrainRequestInner { + open spec fn spec_from(m: SpecTerrainRequest) -> SpecTerrainRequestInner { + (m.lat, (m.lon, (m.grid_spacing, m.mask))) + } +} + +impl SpecFrom for SpecTerrainRequest { + open spec fn spec_from(m: SpecTerrainRequestInner) -> SpecTerrainRequest { + let (lat, (lon, (grid_spacing, mask))) = m; + SpecTerrainRequest { lat, lon, grid_spacing, mask } + } +} +#[derive(Debug, Clone, PartialEq, Eq)] + +pub struct TerrainRequest { + pub lat: u32, + pub lon: u32, + pub grid_spacing: u16, + pub mask: u64, +} + +impl View for TerrainRequest { + type V = SpecTerrainRequest; + + open spec fn view(&self) -> Self::V { + SpecTerrainRequest { + lat: self.lat@, + lon: self.lon@, + grid_spacing: self.grid_spacing@, + mask: self.mask@, + } + } +} +pub type TerrainRequestInner = (u32, (u32, (u16, u64))); + +pub type TerrainRequestInnerRef<'a> = (&'a u32, (&'a u32, (&'a u16, &'a u64))); +impl<'a> From<&'a TerrainRequest> for TerrainRequestInnerRef<'a> { + fn ex_from(m: &'a TerrainRequest) -> TerrainRequestInnerRef<'a> { + (&m.lat, (&m.lon, (&m.grid_spacing, &m.mask))) + } +} + +impl From for TerrainRequest { + fn ex_from(m: TerrainRequestInner) -> TerrainRequest { + let (lat, (lon, (grid_spacing, mask))) = m; + TerrainRequest { lat, lon, grid_spacing, mask } + } +} + +pub struct TerrainRequestMapper; +impl View for TerrainRequestMapper { + type V = Self; + open spec fn view(&self) -> Self::V { + *self + } +} +impl SpecIso for TerrainRequestMapper { + type Src = SpecTerrainRequestInner; + type Dst = SpecTerrainRequest; +} +impl SpecIsoProof for TerrainRequestMapper { + proof fn spec_iso(s: Self::Src) { + assert(Self::Src::spec_from(Self::Dst::spec_from(s)) == s); + } + proof fn spec_iso_rev(s: Self::Dst) { + assert(Self::Dst::spec_from(Self::Src::spec_from(s)) == s); + } +} +impl<'a> Iso<'a> for TerrainRequestMapper { + type Src = TerrainRequestInner; + type Dst = TerrainRequest; + type RefSrc = TerrainRequestInnerRef<'a>; +} +type SpecTerrainRequestCombinatorAlias1 = (U16Le, U64Le); +type SpecTerrainRequestCombinatorAlias2 = (U32Le, SpecTerrainRequestCombinatorAlias1); +type SpecTerrainRequestCombinatorAlias3 = (U32Le, SpecTerrainRequestCombinatorAlias2); +pub struct SpecTerrainRequestCombinator(pub SpecTerrainRequestCombinatorAlias); + +impl SpecCombinator for SpecTerrainRequestCombinator { + type Type = SpecTerrainRequest; + open spec fn requires(&self) -> bool + { self.0.requires() } + open spec fn wf(&self, v: Self::Type) -> bool + { self.0.wf(v) } + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + { self.0.spec_parse(s) } + open spec fn spec_serialize(&self, v: Self::Type) -> Seq + { self.0.spec_serialize(v) } +} +impl SecureSpecCombinator for SpecTerrainRequestCombinator { + open spec fn is_prefix_secure() -> bool + { SpecTerrainRequestCombinatorAlias::is_prefix_secure() } + proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) + { self.0.theorem_serialize_parse_roundtrip(v) } + proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) + { self.0.theorem_parse_serialize_roundtrip(buf) } + proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) + { self.0.lemma_prefix_secure(s1, s2) } + proof fn lemma_parse_length(&self, s: Seq) + { self.0.lemma_parse_length(s) } + open spec fn is_productive(&self) -> bool + { self.0.is_productive() } + proof fn lemma_parse_productive(&self, s: Seq) + { self.0.lemma_parse_productive(s) } +} +pub type SpecTerrainRequestCombinatorAlias = Mapped; +type TerrainRequestCombinatorAlias1 = (U16Le, U64Le); +type TerrainRequestCombinatorAlias2 = (U32Le, TerrainRequestCombinator1); +type TerrainRequestCombinatorAlias3 = (U32Le, TerrainRequestCombinator2); +pub struct TerrainRequestCombinator1(pub TerrainRequestCombinatorAlias1); +impl View for TerrainRequestCombinator1 { + type V = SpecTerrainRequestCombinatorAlias1; + open spec fn view(&self) -> Self::V { self.0@ } +} +impl_wrapper_combinator!(TerrainRequestCombinator1, TerrainRequestCombinatorAlias1); + +pub struct TerrainRequestCombinator2(pub TerrainRequestCombinatorAlias2); +impl View for TerrainRequestCombinator2 { + type V = SpecTerrainRequestCombinatorAlias2; + open spec fn view(&self) -> Self::V { self.0@ } +} +impl_wrapper_combinator!(TerrainRequestCombinator2, TerrainRequestCombinatorAlias2); + +pub struct TerrainRequestCombinator3(pub TerrainRequestCombinatorAlias3); +impl View for TerrainRequestCombinator3 { + type V = SpecTerrainRequestCombinatorAlias3; + open spec fn view(&self) -> Self::V { self.0@ } +} +impl_wrapper_combinator!(TerrainRequestCombinator3, TerrainRequestCombinatorAlias3); + +pub struct TerrainRequestCombinator(pub TerrainRequestCombinatorAlias); + +impl View for TerrainRequestCombinator { + type V = SpecTerrainRequestCombinator; + open spec fn view(&self) -> Self::V { SpecTerrainRequestCombinator(self.0@) } +} +impl<'a> Combinator<'a, &'a [u8], Vec> for TerrainRequestCombinator { + type Type = TerrainRequest; + type SType = &'a Self::Type; + fn length(&self, v: Self::SType) -> usize + { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } + open spec fn ex_requires(&self) -> bool + { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } + fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} +pub type TerrainRequestCombinatorAlias = Mapped; + + +pub open spec fn spec_terrain_request() -> SpecTerrainRequestCombinator { + SpecTerrainRequestCombinator( + Mapped { + inner: (U32Le, (U32Le, (U16Le, U64Le))), + mapper: TerrainRequestMapper, + }) +} + + +pub fn terrain_request<'a>() -> (o: TerrainRequestCombinator) + ensures o@ == spec_terrain_request(), + o@.requires(), + <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), +{ + let combinator = TerrainRequestCombinator( + Mapped { + inner: TerrainRequestCombinator3((U32Le, TerrainRequestCombinator2((U32Le, TerrainRequestCombinator1((U16Le, U64Le)))))), + mapper: TerrainRequestMapper, + }); + // assert({ + // &&& combinator@ == spec_terrain_request() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); + combinator +} + +pub fn parse_terrain_request<'a>(input: &'a [u8]) -> (res: PResult<>>::Type, ParseError>) + requires + input.len() <= usize::MAX, + ensures + res matches Ok((n, v)) ==> spec_terrain_request().spec_parse(input@) == Some((n as int, v@)), + spec_terrain_request().spec_parse(input@) matches Some((n, v)) + ==> res matches Ok((m, u)) && m == n && v == u@, + res is Err ==> spec_terrain_request().spec_parse(input@) is None, + spec_terrain_request().spec_parse(input@) is None ==> res is Err, { - let combinator = command_ack(); + let combinator = terrain_request(); <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) } -pub fn serialize_command_ack<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) +pub fn serialize_terrain_request<'a>(v: >>::SType, data: &mut Vec, pos: usize) -> (o: SResult) requires pos <= old(data)@.len() <= usize::MAX, - spec_command_ack().wf(v@), + spec_terrain_request().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_command_ack().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_command_ack().spec_serialize(v@)) + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_terrain_request().spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_terrain_request().spec_serialize(v@)) }, { - let combinator = command_ack(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + let combinator = terrain_request(); + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } -pub fn command_ack_len<'a>(v: >>::SType) -> (serialize_len: usize) +pub fn terrain_request_len<'a>(v: >>::SType) -> (serialize_len: usize) requires - spec_command_ack().wf(v@), - spec_command_ack().spec_serialize(v@).len() <= usize::MAX, + spec_terrain_request().wf(v@), + spec_terrain_request().spec_serialize(v@).len() <= usize::MAX, ensures - serialize_len == spec_command_ack().spec_serialize(v@).len(), + serialize_len == spec_terrain_request().spec_serialize(v@).len(), { - let combinator = command_ack(); + let combinator = terrain_request(); <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) } @@ -2868,13 +3099,13 @@ impl SpecCombinator for SpecMavlinkV2MsgPayloadCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecMavlinkV2MsgPayloadCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecMavlinkV2MsgPayloadCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -2882,11 +3113,11 @@ impl SecureSpecCombinator for SpecMavlinkV2MsgPayloadCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecMavlinkV2MsgPayloadCombinatorAlias = AndThen>; @@ -2933,37 +3164,42 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MavlinkV2MsgPayloadCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type MavlinkV2MsgPayloadCombinatorAlias = AndThen>; pub open spec fn spec_mavlink_v2_msg_payload(len: u8, msgid: u24) -> SpecMavlinkV2MsgPayloadCombinator { - SpecMavlinkV2MsgPayloadCombinator(AndThen(bytes::Variable(len.spec_into()), Mapped { inner: Choice(Cond { cond: msgid.spec_as_u32() == MessageIds::SPEC_CommandInt, inner: spec_command_int() }, Choice(Cond { cond: msgid.spec_as_u32() == MessageIds::SPEC_CommandLong, inner: spec_command_long() }, Choice(Cond { cond: msgid.spec_as_u32() == MessageIds::SPEC_CommandAck, inner: spec_command_ack() }, Choice(Cond { cond: msgid.spec_as_u32() == MessageIds::SPEC_TerrainRequest, inner: spec_terrain_request() }, Cond { cond: !(msgid.spec_as_u32() == MessageIds::SPEC_CommandInt || msgid.spec_as_u32() == MessageIds::SPEC_CommandLong || msgid.spec_as_u32() == MessageIds::SPEC_CommandAck || msgid.spec_as_u32() == MessageIds::SPEC_TerrainRequest), inner: bytes::Variable(len.spec_into()) })))), mapper: MavlinkV2MsgPayloadMapper })) + SpecMavlinkV2MsgPayloadCombinator(AndThen(bytes::Variable((usize::spec_from(len)) as usize), Mapped { inner: Choice(Cond { cond: msgid.spec_as_u32() == MessageIds::SPEC_CommandInt, inner: spec_command_int() }, Choice(Cond { cond: msgid.spec_as_u32() == MessageIds::SPEC_CommandLong, inner: spec_command_long() }, Choice(Cond { cond: msgid.spec_as_u32() == MessageIds::SPEC_CommandAck, inner: spec_command_ack() }, Choice(Cond { cond: msgid.spec_as_u32() == MessageIds::SPEC_TerrainRequest, inner: spec_terrain_request() }, Cond { cond: !(msgid.spec_as_u32() == MessageIds::SPEC_CommandInt || msgid.spec_as_u32() == MessageIds::SPEC_CommandLong || msgid.spec_as_u32() == MessageIds::SPEC_CommandAck || msgid.spec_as_u32() == MessageIds::SPEC_TerrainRequest), inner: bytes::Variable((usize::spec_from(len)) as usize) })))), mapper: MavlinkV2MsgPayloadMapper })) } pub fn mavlink_v2_msg_payload<'a>(len: u8, msgid: u24) -> (o: MavlinkV2MsgPayloadCombinator) + requires + spec_message_ids().wf(msgid@), + ensures o@ == spec_mavlink_v2_msg_payload(len@, msgid@), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { - let combinator = MavlinkV2MsgPayloadCombinator(AndThen(bytes::Variable(len.ex_into()), Mapped { inner: MavlinkV2MsgPayloadCombinator4(Choice::new(Cond { cond: msgid.as_u32() == MessageIds::CommandInt, inner: command_int() }, MavlinkV2MsgPayloadCombinator3(Choice::new(Cond { cond: msgid.as_u32() == MessageIds::CommandLong, inner: command_long() }, MavlinkV2MsgPayloadCombinator2(Choice::new(Cond { cond: msgid.as_u32() == MessageIds::CommandAck, inner: command_ack() }, MavlinkV2MsgPayloadCombinator1(Choice::new(Cond { cond: msgid.as_u32() == MessageIds::TerrainRequest, inner: terrain_request() }, Cond { cond: !(msgid.as_u32() == MessageIds::CommandInt || msgid.as_u32() == MessageIds::CommandLong || msgid.as_u32() == MessageIds::CommandAck || msgid.as_u32() == MessageIds::TerrainRequest), inner: bytes::Variable(len.ex_into()) })))))))), mapper: MavlinkV2MsgPayloadMapper })); - assert({ - &&& combinator@ == spec_mavlink_v2_msg_payload(len@, msgid@) - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + let combinator = MavlinkV2MsgPayloadCombinator(AndThen(bytes::Variable((usize::ex_from(len)) as usize), Mapped { inner: MavlinkV2MsgPayloadCombinator4(Choice::new(Cond { cond: msgid.as_u32() == MessageIds::CommandInt, inner: command_int() }, MavlinkV2MsgPayloadCombinator3(Choice::new(Cond { cond: msgid.as_u32() == MessageIds::CommandLong, inner: command_long() }, MavlinkV2MsgPayloadCombinator2(Choice::new(Cond { cond: msgid.as_u32() == MessageIds::CommandAck, inner: command_ack() }, MavlinkV2MsgPayloadCombinator1(Choice::new(Cond { cond: msgid.as_u32() == MessageIds::TerrainRequest, inner: terrain_request() }, Cond { cond: !(msgid.as_u32() == MessageIds::CommandInt || msgid.as_u32() == MessageIds::CommandLong || msgid.as_u32() == MessageIds::CommandAck || msgid.as_u32() == MessageIds::TerrainRequest), inner: bytes::Variable((usize::ex_from(len)) as usize) })))))))), mapper: MavlinkV2MsgPayloadMapper })); + // assert({ + // &&& combinator@ == spec_mavlink_v2_msg_payload(len@, msgid@) + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } pub fn parse_mavlink_v2_msg_payload<'a>(input: &'a [u8], len: u8, msgid: u24) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, + spec_message_ids().wf(msgid@), + ensures res matches Ok((n, v)) ==> spec_mavlink_v2_msg_payload(len@, msgid@).spec_parse(input@) == Some((n as int, v@)), spec_mavlink_v2_msg_payload(len@, msgid@).spec_parse(input@) matches Some((n, v)) @@ -2979,22 +3215,26 @@ pub fn serialize_mavlink_v2_msg_payload<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mavlink_v2_msg_payload(len@, msgid@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mavlink_v2_msg_payload(len@, msgid@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mavlink_v2_msg_payload(len@, msgid@).spec_serialize(v@)) }, { let combinator = mavlink_v2_msg_payload( len, msgid ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn mavlink_v2_msg_payload_len<'a>(v: >>::SType, len: u8, msgid: u24) -> (serialize_len: usize) requires spec_mavlink_v2_msg_payload(len@, msgid@).wf(v@), spec_mavlink_v2_msg_payload(len@, msgid@).spec_serialize(v@).len() <= usize::MAX, + spec_message_ids().wf(msgid@), + ensures serialize_len == spec_mavlink_v2_msg_payload(len@, msgid@).spec_serialize(v@).len(), { @@ -3003,224 +3243,6 @@ pub fn mavlink_v2_msg_payload_len<'a>(v: ), - Variant1(Seq), -} - -pub type SpecMavlinkV2MsgSignatureInner = Either, Seq>; - -impl SpecFrom for SpecMavlinkV2MsgSignatureInner { - open spec fn spec_from(m: SpecMavlinkV2MsgSignature) -> SpecMavlinkV2MsgSignatureInner { - match m { - SpecMavlinkV2MsgSignature::Variant0(m) => Either::Left(m), - SpecMavlinkV2MsgSignature::Variant1(m) => Either::Right(m), - } - } - -} - - -impl SpecFrom for SpecMavlinkV2MsgSignature { - open spec fn spec_from(m: SpecMavlinkV2MsgSignatureInner) -> SpecMavlinkV2MsgSignature { - match m { - Either::Left(m) => SpecMavlinkV2MsgSignature::Variant0(m), - Either::Right(m) => SpecMavlinkV2MsgSignature::Variant1(m), - } - } - -} - - - -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum MavlinkV2MsgSignature<'a> { - Variant0(&'a [u8]), - Variant1(&'a [u8]), -} - -pub type MavlinkV2MsgSignatureInner<'a> = Either<&'a [u8], &'a [u8]>; - -pub type MavlinkV2MsgSignatureInnerRef<'a> = Either<&'a &'a [u8], &'a &'a [u8]>; - - -impl<'a> View for MavlinkV2MsgSignature<'a> { - type V = SpecMavlinkV2MsgSignature; - open spec fn view(&self) -> Self::V { - match self { - MavlinkV2MsgSignature::Variant0(m) => SpecMavlinkV2MsgSignature::Variant0(m@), - MavlinkV2MsgSignature::Variant1(m) => SpecMavlinkV2MsgSignature::Variant1(m@), - } - } -} - - -impl<'a> From<&'a MavlinkV2MsgSignature<'a>> for MavlinkV2MsgSignatureInnerRef<'a> { - fn ex_from(m: &'a MavlinkV2MsgSignature<'a>) -> MavlinkV2MsgSignatureInnerRef<'a> { - match m { - MavlinkV2MsgSignature::Variant0(m) => Either::Left(m), - MavlinkV2MsgSignature::Variant1(m) => Either::Right(m), - } - } - -} - -impl<'a> From> for MavlinkV2MsgSignature<'a> { - fn ex_from(m: MavlinkV2MsgSignatureInner<'a>) -> MavlinkV2MsgSignature<'a> { - match m { - Either::Left(m) => MavlinkV2MsgSignature::Variant0(m), - Either::Right(m) => MavlinkV2MsgSignature::Variant1(m), - } - } - -} - - -pub struct MavlinkV2MsgSignatureMapper; -impl View for MavlinkV2MsgSignatureMapper { - type V = Self; - open spec fn view(&self) -> Self::V { - *self - } -} -impl SpecIso for MavlinkV2MsgSignatureMapper { - type Src = SpecMavlinkV2MsgSignatureInner; - type Dst = SpecMavlinkV2MsgSignature; -} -impl SpecIsoProof for MavlinkV2MsgSignatureMapper { - proof fn spec_iso(s: Self::Src) { - assert(Self::Src::spec_from(Self::Dst::spec_from(s)) == s); - } - proof fn spec_iso_rev(s: Self::Dst) { - assert(Self::Dst::spec_from(Self::Src::spec_from(s)) == s); - } -} -impl<'a> Iso<'a> for MavlinkV2MsgSignatureMapper { - type Src = MavlinkV2MsgSignatureInner<'a>; - type Dst = MavlinkV2MsgSignature<'a>; - type RefSrc = MavlinkV2MsgSignatureInnerRef<'a>; -} - -type SpecMavlinkV2MsgSignatureCombinatorAlias1 = Choice>, Cond>>; -pub struct SpecMavlinkV2MsgSignatureCombinator(pub SpecMavlinkV2MsgSignatureCombinatorAlias); - -impl SpecCombinator for SpecMavlinkV2MsgSignatureCombinator { - type Type = SpecMavlinkV2MsgSignature; - open spec fn requires(&self) -> bool - { self.0.requires() } - open spec fn wf(&self, v: Self::Type) -> bool - { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> - { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq - { self.0.spec_serialize(v) } -} -impl SecureSpecCombinator for SpecMavlinkV2MsgSignatureCombinator { - open spec fn is_prefix_secure() -> bool - { SpecMavlinkV2MsgSignatureCombinatorAlias::is_prefix_secure() } - proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) - { self.0.theorem_serialize_parse_roundtrip(v) } - proof fn theorem_parse_serialize_roundtrip(&self, buf: Seq) - { self.0.theorem_parse_serialize_roundtrip(buf) } - proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) - { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) - { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool - { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) - { self.0.lemma_parse_productive(s) } -} -pub type SpecMavlinkV2MsgSignatureCombinatorAlias = Mapped; -type MavlinkV2MsgSignatureCombinatorAlias1 = Choice>, Cond>>; -pub struct MavlinkV2MsgSignatureCombinator1(pub MavlinkV2MsgSignatureCombinatorAlias1); -impl View for MavlinkV2MsgSignatureCombinator1 { - type V = SpecMavlinkV2MsgSignatureCombinatorAlias1; - open spec fn view(&self) -> Self::V { self.0@ } -} -impl_wrapper_combinator!(MavlinkV2MsgSignatureCombinator1, MavlinkV2MsgSignatureCombinatorAlias1); - -pub struct MavlinkV2MsgSignatureCombinator(pub MavlinkV2MsgSignatureCombinatorAlias); - -impl View for MavlinkV2MsgSignatureCombinator { - type V = SpecMavlinkV2MsgSignatureCombinator; - open spec fn view(&self) -> Self::V { SpecMavlinkV2MsgSignatureCombinator(self.0@) } -} -impl<'a> Combinator<'a, &'a [u8], Vec> for MavlinkV2MsgSignatureCombinator { - type Type = MavlinkV2MsgSignature<'a>; - type SType = &'a Self::Type; - fn length(&self, v: Self::SType) -> usize - { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool - { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) - { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } - fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} -pub type MavlinkV2MsgSignatureCombinatorAlias = Mapped; - - -pub open spec fn spec_mavlink_v2_msg_signature(incompat_flags: u8) -> SpecMavlinkV2MsgSignatureCombinator { - SpecMavlinkV2MsgSignatureCombinator(Mapped { inner: Choice(Cond { cond: incompat_flags == 1, inner: bytes::Fixed::<13> }, Cond { cond: !(incompat_flags == 1), inner: bytes::Fixed::<0> }), mapper: MavlinkV2MsgSignatureMapper }) -} - -pub fn mavlink_v2_msg_signature<'a>(incompat_flags: u8) -> (o: MavlinkV2MsgSignatureCombinator) - ensures o@ == spec_mavlink_v2_msg_signature(incompat_flags@), - o@.requires(), - <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), -{ - let combinator = MavlinkV2MsgSignatureCombinator(Mapped { inner: MavlinkV2MsgSignatureCombinator1(Choice::new(Cond { cond: incompat_flags == 1, inner: bytes::Fixed::<13> }, Cond { cond: !(incompat_flags == 1), inner: bytes::Fixed::<0> })), mapper: MavlinkV2MsgSignatureMapper }); - assert({ - &&& combinator@ == spec_mavlink_v2_msg_signature(incompat_flags@) - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); - combinator -} - -pub fn parse_mavlink_v2_msg_signature<'a>(input: &'a [u8], incompat_flags: u8) -> (res: PResult<>>::Type, ParseError>) - requires - input.len() <= usize::MAX, - ensures - res matches Ok((n, v)) ==> spec_mavlink_v2_msg_signature(incompat_flags@).spec_parse(input@) == Some((n as int, v@)), - spec_mavlink_v2_msg_signature(incompat_flags@).spec_parse(input@) matches Some((n, v)) - ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_mavlink_v2_msg_signature(incompat_flags@).spec_parse(input@) is None, - spec_mavlink_v2_msg_signature(incompat_flags@).spec_parse(input@) is None ==> res is Err, -{ - let combinator = mavlink_v2_msg_signature( incompat_flags ); - <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) -} - -pub fn serialize_mavlink_v2_msg_signature<'a>(v: >>::SType, data: &mut Vec, pos: usize, incompat_flags: u8) -> (o: SResult) - requires - pos <= old(data)@.len() <= usize::MAX, - spec_mavlink_v2_msg_signature(incompat_flags@).wf(v@), - ensures - o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_mavlink_v2_msg_signature(incompat_flags@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mavlink_v2_msg_signature(incompat_flags@).spec_serialize(v@)) - }, -{ - let combinator = mavlink_v2_msg_signature( incompat_flags ); - combinator.serialize(v, data, pos) -} - -pub fn mavlink_v2_msg_signature_len<'a>(v: >>::SType, incompat_flags: u8) -> (serialize_len: usize) - requires - spec_mavlink_v2_msg_signature(incompat_flags@).wf(v@), - spec_mavlink_v2_msg_signature(incompat_flags@).spec_serialize(v@).len() <= usize::MAX, - ensures - serialize_len == spec_mavlink_v2_msg_signature(incompat_flags@).spec_serialize(v@).len(), -{ - let combinator = mavlink_v2_msg_signature( incompat_flags ); - <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) -} - - pub struct SpecMavlinkV2Msg { pub len: u8, pub incompat_flags: u8, @@ -3331,13 +3353,13 @@ impl SpecCombinator for SpecMavlinkV2MsgCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecMavlinkV2MsgCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecMavlinkV2MsgCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -3345,11 +3367,11 @@ impl SecureSpecCombinator for SpecMavlinkV2MsgCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecMavlinkV2MsgCombinatorAlias = Mapped, (U8, (U8, (Refined, (Refined, SpecMessageIdsCombinator))))>, (SpecMavlinkV2MsgPayloadCombinator, (U16Le, SpecMavlinkV2MsgSignatureCombinator))>, MavlinkV2MsgMapper>; @@ -3365,13 +3387,13 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MavlinkV2MsgCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type MavlinkV2MsgCombinatorAlias = Mapped, (U8, (U8, (Refined, (Refined, MessageIdsCombinator)))), MavlinkV2MsgCont1>, (MavlinkV2MsgPayloadCombinator, (U16Le, MavlinkV2MsgSignatureCombinator)), MavlinkV2MsgCont0>, MavlinkV2MsgMapper>; @@ -3439,11 +3461,11 @@ pub fn mavlink_v2_msg<'a>() -> (o: MavlinkV2MsgCombinator) inner: Pair::new(Pair::new(Pair::new(U8, MavlinkV2MsgCont2), MavlinkV2MsgCont1), MavlinkV2MsgCont0), mapper: MavlinkV2MsgMapper, }); - assert({ - &&& combinator@ == spec_mavlink_v2_msg() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + // assert({ + // &&& combinator@ == spec_mavlink_v2_msg() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } @@ -3467,14 +3489,14 @@ pub fn serialize_mavlink_v2_msg<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mavlink_v2_msg().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mavlink_v2_msg().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mavlink_v2_msg().spec_serialize(v@)) }, { let combinator = mavlink_v2_msg(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn mavlink_v2_msg_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3495,16 +3517,20 @@ type MavlinkV2MsgCont2Input<'a, 'b, 'x> = POrSType impl<'a, 'b, 'x> Continuation> for MavlinkV2MsgCont2 { type Output = IncompatFlagsCombinator; - open spec fn requires(&self, deps: MavlinkV2MsgCont2Input<'a, 'b, 'x>) -> bool { true } + open spec fn requires(&self, deps: MavlinkV2MsgCont2Input<'a, 'b, 'x>) -> bool { + &&& (U8).wf(deps@) + } open spec fn ensures(&self, deps: MavlinkV2MsgCont2Input<'a, 'b, 'x>, o: Self::Output) -> bool { - o@ == spec_mavlink_v2_msg_cont2(deps@) + &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o) + &&& o@ == spec_mavlink_v2_msg_cont2(deps@) } fn apply(&self, deps: MavlinkV2MsgCont2Input<'a, 'b, 'x>) -> Self::Output { match deps { POrSType::P(deps) => { - let len = *deps; + let len = deps; + let len = *len; incompat_flags() } POrSType::S(deps) => { @@ -3522,21 +3548,27 @@ type MavlinkV2MsgCont1Input<'a, 'b, 'x> = POrSType impl<'a, 'b, 'x> Continuation> for MavlinkV2MsgCont1 { type Output = (U8, (U8, (Refined, (Refined, MessageIdsCombinator)))); - open spec fn requires(&self, deps: MavlinkV2MsgCont1Input<'a, 'b, 'x>) -> bool { true } + open spec fn requires(&self, deps: MavlinkV2MsgCont1Input<'a, 'b, 'x>) -> bool { + &&& (Pair::spec_new(U8, |deps| spec_mavlink_v2_msg_cont2(deps))).wf(deps@) + } open spec fn ensures(&self, deps: MavlinkV2MsgCont1Input<'a, 'b, 'x>, o: Self::Output) -> bool { - o@ == spec_mavlink_v2_msg_cont1(deps@) + &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o) + &&& o@ == spec_mavlink_v2_msg_cont1(deps@) } fn apply(&self, deps: MavlinkV2MsgCont1Input<'a, 'b, 'x>) -> Self::Output { match deps { POrSType::P(deps) => { - let (len, incompat_flags) = *deps; + let (len, incompat_flags) = deps; + let len = *len; + let incompat_flags = *incompat_flags; (U8, (U8, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, message_ids())))) } POrSType::S(deps) => { let (len, incompat_flags) = deps; - let (len, incompat_flags) = (*len, *incompat_flags); + let len = *len; + let incompat_flags = *incompat_flags; (U8, (U8, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, (Refined { inner: U8, predicate: Predicate3768926651291043512 }, message_ids())))) } } @@ -3549,21 +3581,29 @@ type MavlinkV2MsgCont0Input<'a, 'b, 'x> = POrSType impl<'a, 'b, 'x> Continuation> for MavlinkV2MsgCont0 { type Output = (MavlinkV2MsgPayloadCombinator, (U16Le, MavlinkV2MsgSignatureCombinator)); - open spec fn requires(&self, deps: MavlinkV2MsgCont0Input<'a, 'b, 'x>) -> bool { true } + open spec fn requires(&self, deps: MavlinkV2MsgCont0Input<'a, 'b, 'x>) -> bool { + &&& (Pair::spec_new(Pair::spec_new(U8, |deps| spec_mavlink_v2_msg_cont2(deps)), |deps| spec_mavlink_v2_msg_cont1(deps))).wf(deps@) + } open spec fn ensures(&self, deps: MavlinkV2MsgCont0Input<'a, 'b, 'x>, o: Self::Output) -> bool { - o@ == spec_mavlink_v2_msg_cont0(deps@) + &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o) + &&& o@ == spec_mavlink_v2_msg_cont0(deps@) } fn apply(&self, deps: MavlinkV2MsgCont0Input<'a, 'b, 'x>) -> Self::Output { match deps { POrSType::P(deps) => { - let ((len, incompat_flags), (_, (_, (_, (_, msgid))))) = *deps; + let ((len, incompat_flags), (_, (_, (_, (_, msgid))))) = deps; + let len = *len; + let incompat_flags = *incompat_flags; + let msgid = *msgid; (mavlink_v2_msg_payload(len, msgid), (U16Le, mavlink_v2_msg_signature(incompat_flags))) } POrSType::S(deps) => { let ((len, incompat_flags), (_, (_, (_, (_, msgid))))) = deps; - let ((len, incompat_flags), msgid) = ((*len, *incompat_flags), *msgid); + let len = *len; + let incompat_flags = *incompat_flags; + let msgid = *msgid; (mavlink_v2_msg_payload(len, msgid), (U16Le, mavlink_v2_msg_signature(incompat_flags))) } } @@ -3678,13 +3718,13 @@ impl SpecCombinator for SpecMavlinkMsgMsgCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecMavlinkMsgMsgCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecMavlinkMsgMsgCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -3692,11 +3732,11 @@ impl SecureSpecCombinator for SpecMavlinkMsgMsgCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecMavlinkMsgMsgCombinatorAlias = Mapped; @@ -3719,13 +3759,13 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MavlinkMsgMsgCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type MavlinkMsgMsgCombinatorAlias = Mapped; @@ -3734,22 +3774,27 @@ pub open spec fn spec_mavlink_msg_msg(magic: SpecProtocolMagic) -> SpecMavlinkMs } pub fn mavlink_msg_msg<'a>(magic: ProtocolMagic) -> (o: MavlinkMsgMsgCombinator) + requires + spec_protocol_magic().wf(magic@), + ensures o@ == spec_mavlink_msg_msg(magic@), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { let combinator = MavlinkMsgMsgCombinator(Mapped { inner: MavlinkMsgMsgCombinator1(Choice::new(Cond { cond: magic == ProtocolMagic::MavLink1, inner: mavlink_v1_msg() }, Cond { cond: magic == ProtocolMagic::MavLink2, inner: mavlink_v2_msg() })), mapper: MavlinkMsgMsgMapper }); - assert({ - &&& combinator@ == spec_mavlink_msg_msg(magic@) - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + // assert({ + // &&& combinator@ == spec_mavlink_msg_msg(magic@) + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } pub fn parse_mavlink_msg_msg<'a>(input: &'a [u8], magic: ProtocolMagic) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, + spec_protocol_magic().wf(magic@), + ensures res matches Ok((n, v)) ==> spec_mavlink_msg_msg(magic@).spec_parse(input@) == Some((n as int, v@)), spec_mavlink_msg_msg(magic@).spec_parse(input@) matches Some((n, v)) @@ -3765,22 +3810,26 @@ pub fn serialize_mavlink_msg_msg<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mavlink_msg_msg(magic@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mavlink_msg_msg(magic@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mavlink_msg_msg(magic@).spec_serialize(v@)) }, { let combinator = mavlink_msg_msg( magic ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn mavlink_msg_msg_len<'a>(v: >>::SType, magic: ProtocolMagic) -> (serialize_len: usize) requires spec_mavlink_msg_msg(magic@).wf(v@), spec_mavlink_msg_msg(magic@).spec_serialize(v@).len() <= usize::MAX, + spec_protocol_magic().wf(magic@), + ensures serialize_len == spec_mavlink_msg_msg(magic@).spec_serialize(v@).len(), { @@ -3875,13 +3924,13 @@ impl SpecCombinator for SpecMavlinkMsgCombinator { { self.0.requires() } open spec fn wf(&self, v: Self::Type) -> bool { self.0.wf(v) } - open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> + open spec fn spec_parse(&self, s: Seq) -> Option<(int, Self::Type)> { self.0.spec_parse(s) } - open spec fn spec_serialize(&self, v: Self::Type) -> Seq + open spec fn spec_serialize(&self, v: Self::Type) -> Seq { self.0.spec_serialize(v) } } impl SecureSpecCombinator for SpecMavlinkMsgCombinator { - open spec fn is_prefix_secure() -> bool + open spec fn is_prefix_secure() -> bool { SpecMavlinkMsgCombinatorAlias::is_prefix_secure() } proof fn theorem_serialize_parse_roundtrip(&self, v: Self::Type) { self.0.theorem_serialize_parse_roundtrip(v) } @@ -3889,11 +3938,11 @@ impl SecureSpecCombinator for SpecMavlinkMsgCombinator { { self.0.theorem_parse_serialize_roundtrip(buf) } proof fn lemma_prefix_secure(&self, s1: Seq, s2: Seq) { self.0.lemma_prefix_secure(s1, s2) } - proof fn lemma_parse_length(&self, s: Seq) + proof fn lemma_parse_length(&self, s: Seq) { self.0.lemma_parse_length(s) } - open spec fn is_productive(&self) -> bool + open spec fn is_productive(&self) -> bool { self.0.is_productive() } - proof fn lemma_parse_productive(&self, s: Seq) + proof fn lemma_parse_productive(&self, s: Seq) { self.0.lemma_parse_productive(s) } } pub type SpecMavlinkMsgCombinatorAlias = Mapped, MavlinkMsgMapper>; @@ -3909,13 +3958,13 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MavlinkMsgCombinator { type SType = &'a Self::Type; fn length(&self, v: Self::SType) -> usize { <_ as Combinator<'a, &'a [u8], Vec>>::length(&self.0, v) } - open spec fn ex_requires(&self) -> bool + open spec fn ex_requires(&self) -> bool { <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&self.0) } - fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) + fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } -} + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } +} pub type MavlinkMsgCombinatorAlias = Mapped, MavlinkMsgMapper>; @@ -3953,11 +4002,11 @@ pub fn mavlink_msg<'a>() -> (o: MavlinkMsgCombinator) inner: Pair::new(protocol_magic(), MavlinkMsgCont0), mapper: MavlinkMsgMapper, }); - assert({ - &&& combinator@ == spec_mavlink_msg() - &&& combinator@.requires() - &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) - }); + // assert({ + // &&& combinator@ == spec_mavlink_msg() + // &&& combinator@.requires() + // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) + // }); combinator } @@ -3981,14 +4030,14 @@ pub fn serialize_mavlink_msg<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mavlink_msg().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mavlink_msg().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mavlink_msg().spec_serialize(v@)) }, { let combinator = mavlink_msg(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn mavlink_msg_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4009,16 +4058,20 @@ type MavlinkMsgCont0Input<'a, 'b, 'x> = POrSType, Ma impl<'a, 'b, 'x> Continuation> for MavlinkMsgCont0 { type Output = MavlinkMsgMsgCombinator; - open spec fn requires(&self, deps: MavlinkMsgCont0Input<'a, 'b, 'x>) -> bool { true } + open spec fn requires(&self, deps: MavlinkMsgCont0Input<'a, 'b, 'x>) -> bool { + &&& (spec_protocol_magic()).wf(deps@) + } open spec fn ensures(&self, deps: MavlinkMsgCont0Input<'a, 'b, 'x>, o: Self::Output) -> bool { - o@ == spec_mavlink_msg_cont0(deps@) + &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o) + &&& o@ == spec_mavlink_msg_cont0(deps@) } fn apply(&self, deps: MavlinkMsgCont0Input<'a, 'b, 'x>) -> Self::Output { match deps { POrSType::P(deps) => { - let magic = *deps; + let magic = deps; + let magic = *magic; mavlink_msg_msg(magic) } POrSType::S(deps) => { diff --git a/vest-dsl/src/codegen.rs b/vest-dsl/src/codegen.rs index 728d7d13..23cd371c 100644 --- a/vest-dsl/src/codegen.rs +++ b/vest-dsl/src/codegen.rs @@ -662,7 +662,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for {name}Combinator {{ fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) {{ <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) }} fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - {{ <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) }} + {{ <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) }} }} "# ) @@ -3731,7 +3731,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -3918,14 +3918,14 @@ pub fn serialize_{name}<'a>(v: <{upper_caml_name}Combinator as Combinator<'a, &' spec_{name}().wf(v@), ensures o matches Ok(n) ==> {{ - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_{name}().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_{name}().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_{name}().spec_serialize(v@)) }}, {{ let combinator = {name}(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) }} pub fn {name}_len<'a>(v: <{upper_caml_name}Combinator as Combinator<'a, &'a [u8], Vec>>::SType) -> (serialize_len: usize) @@ -4067,14 +4067,14 @@ pub fn serialize_{name}<'a>(v: <{upper_caml_name}Combinator as Combinator<'a, &' {serialize_requires} ensures o matches Ok(n) ==> {{ - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_{name}({args_view}).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_{name}({args_view}).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_{name}({args_view}).spec_serialize(v@)) }}, {{ let combinator = {name}( {args} ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) }} pub fn {name}_len<'a>(v: <{upper_caml_name}Combinator as Combinator<'a, &'a [u8], Vec>>::SType, {exec_params}) -> (serialize_len: usize) @@ -4150,14 +4150,14 @@ pub fn serialize_{name}<'a>(v: <{upper_caml_name}Combinator as Combinator<'a, &' spec_{name}().wf(v@), ensures o matches Ok(n) ==> {{ - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_{name}().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_{name}().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_{name}().spec_serialize(v@)) }}, {{ let combinator = {name}(); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) }} pub fn {name}_len<'a>(v: <{upper_caml_name}Combinator as Combinator<'a, &'a [u8], Vec>>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/Cargo.toml b/vest-dsl/test/Cargo.toml index 0970755d..806541de 100644 --- a/vest-dsl/test/Cargo.toml +++ b/vest-dsl/test/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -vstd = "0.0.0-2026-03-17-2326" +vstd = "=0.0.0-2026-05-10-0145" vest_lib = { path = "../../vest" } [package.metadata.verus] diff --git a/vest-dsl/test/src/anonymous_nested.rs b/vest-dsl/test/src/anonymous_nested.rs index ea3dfa59..cec7d483 100644 --- a/vest-dsl/test/src/anonymous_nested.rs +++ b/vest-dsl/test/src/anonymous_nested.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -188,7 +188,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureParamAndLocalXAPayloadComb fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureParamAndLocalXAPayloadCombinatorAlias = Mapped; @@ -238,14 +238,14 @@ pub fn serialize_capture_param_and_local_x_a_payload<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_param_and_local_x_a_payload(choice2@, len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x_a_payload(choice2@, len@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x_a_payload(choice2@, len@).spec_serialize(v@)) }, { let combinator = capture_param_and_local_x_a_payload( choice2, len ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn capture_param_and_local_x_a_payload_len<'a>(v: >>::SType, choice2: COrD, len: u8) -> (serialize_len: usize) @@ -387,7 +387,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureParamAndLocalXACombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureParamAndLocalXACombinatorAlias = Mapped, CaptureParamAndLocalXAMapper>; @@ -460,14 +460,14 @@ pub fn serialize_capture_param_and_local_x_a<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_param_and_local_x_a(choice2@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x_a(choice2@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x_a(choice2@).spec_serialize(v@)) }, { let combinator = capture_param_and_local_x_a( choice2 ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn capture_param_and_local_x_a_len<'a>(v: >>::SType, choice2: COrD) -> (serialize_len: usize) @@ -674,7 +674,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureParamAndLocalXBYCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureParamAndLocalXBYCombinatorAlias = Mapped; @@ -720,14 +720,14 @@ pub fn serialize_capture_param_and_local_x_b_y<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_param_and_local_x_b_y(tag@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x_b_y(tag@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x_b_y(tag@).spec_serialize(v@)) }, { let combinator = capture_param_and_local_x_b_y( tag ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn capture_param_and_local_x_b_y_len<'a>(v: >>::SType, tag: u8) -> (serialize_len: usize) @@ -868,7 +868,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureParamAndLocalXBCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureParamAndLocalXBCombinatorAlias = Mapped, CaptureParamAndLocalXBMapper>; @@ -935,14 +935,14 @@ pub fn serialize_capture_param_and_local_x_b<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_param_and_local_x_b().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x_b().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x_b().spec_serialize(v@)) }, { let combinator = capture_param_and_local_x_b(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn capture_param_and_local_x_b_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1142,7 +1142,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureParamAndLocalXCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureParamAndLocalXCombinatorAlias = Mapped; @@ -1195,14 +1195,14 @@ pub fn serialize_capture_param_and_local_x<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_param_and_local_x(choice1@, choice2@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x(choice1@, choice2@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_param_and_local_x(choice1@, choice2@).spec_serialize(v@)) }, { let combinator = capture_param_and_local_x( choice1, choice2 ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn capture_param_and_local_x_len<'a>(v: >>::SType, choice1: AOrB, choice2: COrD) -> (serialize_len: usize) @@ -1373,7 +1373,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NestedInnerChoiceXACombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NestedInnerChoiceXACombinatorAlias = Mapped; @@ -1423,14 +1423,14 @@ pub fn serialize_nested_inner_choice_x_a<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_nested_inner_choice_x_a(choice2@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_nested_inner_choice_x_a(choice2@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_nested_inner_choice_x_a(choice2@).spec_serialize(v@)) }, { let combinator = nested_inner_choice_x_a( choice2 ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn nested_inner_choice_x_a_len<'a>(v: >>::SType, choice2: COrD) -> (serialize_len: usize) @@ -1572,7 +1572,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureOuterAndLocalPayloadAnonIn fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureOuterAndLocalPayloadAnonInnerBodyChoice1CombinatorAlias = Mapped, CaptureOuterAndLocalPayloadAnonInnerBodyChoice1Mapper>; @@ -1639,14 +1639,14 @@ pub fn serialize_capture_outer_and_local_payload_anon_inner_body_choice1<'a>(v: spec_capture_outer_and_local_payload_anon_inner_body_choice1().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_outer_and_local_payload_anon_inner_body_choice1().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_outer_and_local_payload_anon_inner_body_choice1().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_outer_and_local_payload_anon_inner_body_choice1().spec_serialize(v@)) }, { let combinator = capture_outer_and_local_payload_anon_inner_body_choice1(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn capture_outer_and_local_payload_anon_inner_body_choice1_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1846,7 +1846,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureOuterAndLocalPayloadAnonIn fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureOuterAndLocalPayloadAnonInnerBodyCombinatorAlias = Mapped; @@ -1896,14 +1896,14 @@ pub fn serialize_capture_outer_and_local_payload_anon_inner_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_outer_and_local_payload_anon_inner_body(frame_len@, tag@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_outer_and_local_payload_anon_inner_body(frame_len@, tag@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_outer_and_local_payload_anon_inner_body(frame_len@, tag@).spec_serialize(v@)) }, { let combinator = capture_outer_and_local_payload_anon_inner_body( frame_len, tag ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn capture_outer_and_local_payload_anon_inner_body_len<'a>(v: >>::SType, frame_len: u8, tag: u8) -> (serialize_len: usize) @@ -2045,7 +2045,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureOuterAndLocalPayloadCombin fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureOuterAndLocalPayloadCombinatorAlias = AndThen, CaptureOuterAndLocalPayloadMapper>>; @@ -2118,14 +2118,14 @@ pub fn serialize_capture_outer_and_local_payload<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_outer_and_local_payload(frame_len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_outer_and_local_payload(frame_len@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_outer_and_local_payload(frame_len@).spec_serialize(v@)) }, { let combinator = capture_outer_and_local_payload( frame_len ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn capture_outer_and_local_payload_len<'a>(v: >>::SType, frame_len: u8) -> (serialize_len: usize) @@ -2324,7 +2324,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureOuterAndLocalCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureOuterAndLocalCombinatorAlias = Mapped, CaptureOuterAndLocalPayloadCombinator, CaptureOuterAndLocalCont0>, CaptureOuterAndLocalMapper>; @@ -2391,14 +2391,14 @@ pub fn serialize_capture_outer_and_local<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_outer_and_local().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_outer_and_local().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_outer_and_local().spec_serialize(v@)) }, { let combinator = capture_outer_and_local(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn capture_outer_and_local_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2577,7 +2577,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NestedInnerStructAnonInnerCombina fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NestedInnerStructAnonInnerCombinatorAlias = AndThen>; @@ -2631,14 +2631,14 @@ pub fn serialize_nested_inner_struct_anon_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_nested_inner_struct_anon_inner(len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_nested_inner_struct_anon_inner(len@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_nested_inner_struct_anon_inner(len@).spec_serialize(v@)) }, { let combinator = nested_inner_struct_anon_inner( len ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn nested_inner_struct_anon_inner_len<'a>(v: >>::SType, len: u32) -> (serialize_len: usize) @@ -2779,7 +2779,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureLocalInAnonStructWrapperVa fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureLocalInAnonStructWrapperValueChoice0CombinatorAlias = Mapped, CaptureLocalInAnonStructWrapperValueChoice0Mapper>; @@ -2846,14 +2846,14 @@ pub fn serialize_capture_local_in_anon_struct_wrapper_value_choice0<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_local_in_anon_struct_wrapper_value_choice0().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_local_in_anon_struct_wrapper_value_choice0().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_local_in_anon_struct_wrapper_value_choice0().spec_serialize(v@)) }, { let combinator = capture_local_in_anon_struct_wrapper_value_choice0(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn capture_local_in_anon_struct_wrapper_value_choice0_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3053,7 +3053,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureLocalInAnonStructWrapperVa fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureLocalInAnonStructWrapperValueCombinatorAlias = Mapped; @@ -3099,14 +3099,14 @@ pub fn serialize_capture_local_in_anon_struct_wrapper_value<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_local_in_anon_struct_wrapper_value(tag@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_local_in_anon_struct_wrapper_value(tag@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_local_in_anon_struct_wrapper_value(tag@).spec_serialize(v@)) }, { let combinator = capture_local_in_anon_struct_wrapper_value( tag ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn capture_local_in_anon_struct_wrapper_value_len<'a>(v: >>::SType, tag: u8) -> (serialize_len: usize) @@ -3275,7 +3275,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NestedInnerChoiceXCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NestedInnerChoiceXCombinatorAlias = Mapped; @@ -3328,14 +3328,14 @@ pub fn serialize_nested_inner_choice_x<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_nested_inner_choice_x(choice1@, choice2@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_nested_inner_choice_x(choice1@, choice2@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_nested_inner_choice_x(choice1@, choice2@).spec_serialize(v@)) }, { let combinator = nested_inner_choice_x( choice1, choice2 ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn nested_inner_choice_x_len<'a>(v: >>::SType, choice1: AOrB, choice2: COrD) -> (serialize_len: usize) @@ -3475,7 +3475,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NestedInnerChoiceCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NestedInnerChoiceCombinatorAlias = Mapped; @@ -3536,14 +3536,14 @@ pub fn serialize_nested_inner_choice<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_nested_inner_choice(choice1@, choice2@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_nested_inner_choice(choice1@, choice2@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_nested_inner_choice(choice1@, choice2@).spec_serialize(v@)) }, { let combinator = nested_inner_choice( choice1, choice2 ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn nested_inner_choice_len<'a>(v: >>::SType, choice1: AOrB, choice2: COrD) -> (serialize_len: usize) @@ -3683,7 +3683,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureParamAndLocalCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureParamAndLocalCombinatorAlias = Mapped; @@ -3744,14 +3744,14 @@ pub fn serialize_capture_param_and_local<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_param_and_local(choice1@, choice2@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_param_and_local(choice1@, choice2@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_param_and_local(choice1@, choice2@).spec_serialize(v@)) }, { let combinator = capture_param_and_local( choice1, choice2 ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn capture_param_and_local_len<'a>(v: >>::SType, choice1: AOrB, choice2: COrD) -> (serialize_len: usize) @@ -3894,7 +3894,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NestedInnerStructCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NestedInnerStructCombinatorAlias = Mapped, NestedInnerStructMapper>; @@ -3961,14 +3961,14 @@ pub fn serialize_nested_inner_struct<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_nested_inner_struct().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_nested_inner_struct().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_nested_inner_struct().spec_serialize(v@)) }, { let combinator = nested_inner_struct(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn nested_inner_struct_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4172,7 +4172,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for COrDCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type COrDCombinatorAlias = TryMap; @@ -4216,14 +4216,14 @@ pub fn serialize_c_or_d<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_c_or_d().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_c_or_d().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_c_or_d().spec_serialize(v@)) }, { let combinator = c_or_d(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn c_or_d_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4364,7 +4364,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureLocalInAnonStructWrapperCo fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureLocalInAnonStructWrapperCombinatorAlias = Mapped, CaptureLocalInAnonStructWrapperMapper>; @@ -4431,14 +4431,14 @@ pub fn serialize_capture_local_in_anon_struct_wrapper<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_local_in_anon_struct_wrapper().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_local_in_anon_struct_wrapper().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_local_in_anon_struct_wrapper().spec_serialize(v@)) }, { let combinator = capture_local_in_anon_struct_wrapper(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn capture_local_in_anon_struct_wrapper_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4607,7 +4607,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CaptureLocalInAnonStructCombinato fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CaptureLocalInAnonStructCombinatorAlias = Mapped; @@ -4659,14 +4659,14 @@ pub fn serialize_capture_local_in_anon_struct<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_capture_local_in_anon_struct().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_capture_local_in_anon_struct().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_capture_local_in_anon_struct().spec_serialize(v@)) }, { let combinator = capture_local_in_anon_struct(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn capture_local_in_anon_struct_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4839,7 +4839,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AOrBCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AOrBCombinatorAlias = TryMap; @@ -4883,14 +4883,14 @@ pub fn serialize_a_or_b<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_or_b().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_or_b().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_or_b().spec_serialize(v@)) }, { let combinator = a_or_b(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn a_or_b_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/codegen.rs b/vest-dsl/test/src/codegen.rs index e9785fcc..8780287a 100644 --- a/vest-dsl/test/src/codegen.rs +++ b/vest-dsl/test/src/codegen.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -199,7 +199,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg1Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg1CombinatorAlias = Mapped; @@ -251,14 +251,14 @@ pub fn serialize_msg1<'a>(v: spec_msg1().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg1().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg1().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg1().spec_serialize(v@)) }, { let combinator = msg1(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg1_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -418,7 +418,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg2Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg2CombinatorAlias = Mapped; @@ -470,14 +470,14 @@ pub fn serialize_msg2<'a>(v: spec_msg2().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg2().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg2().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg2().spec_serialize(v@)) }, { let combinator = msg2(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg2_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -657,7 +657,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ATypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ATypeCombinatorAlias = TryMap; @@ -701,14 +701,14 @@ pub fn serialize_a_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_type().spec_serialize(v@)) }, { let combinator = a_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn a_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -775,7 +775,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg3Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg3CombinatorAlias = bytes::Fixed<6>; @@ -819,14 +819,14 @@ pub fn serialize_msg3<'a>(v: spec_msg3().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg3().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg3().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg3().spec_serialize(v@)) }, { let combinator = msg3(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg3_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1011,7 +1011,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg4VCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg4VCombinatorAlias = Mapped; @@ -1061,14 +1061,14 @@ pub fn serialize_msg4_v<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg4_v(t@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg4_v(t@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg4_v(t@).spec_serialize(v@)) }, { let combinator = msg4_v( t ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn msg4_v_len<'a>(v: >>::SType, t: AType) -> (serialize_len: usize) @@ -1213,7 +1213,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg4Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg4CombinatorAlias = Mapped, Msg4Mapper>; @@ -1280,14 +1280,14 @@ pub fn serialize_msg4<'a>(v: spec_msg4().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg4().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg4().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg4().spec_serialize(v@)) }, { let combinator = msg4(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg4_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/elab.rs b/vest-dsl/test/src/elab.rs index 6acfebe0..0c1e0451 100644 --- a/vest-dsl/test/src/elab.rs +++ b/vest-dsl/test/src/elab.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -86,7 +86,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Content0Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Content0CombinatorAlias = bytes::Variable; @@ -132,14 +132,14 @@ pub fn serialize_content_0<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_content_0(num@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_content_0(num@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_content_0(num@).spec_serialize(v@)) }, { let combinator = content_0( num ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn content_0_len<'a>(v: >>::SType, num: u24) -> (serialize_len: usize) @@ -212,7 +212,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ContentTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ContentTypeCombinatorAlias = U8; @@ -256,14 +256,14 @@ pub fn serialize_content_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_content_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_content_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_content_type().spec_serialize(v@)) }, { let combinator = content_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn content_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -464,7 +464,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MsgCF4Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MsgCF4CombinatorAlias = AndThen>; @@ -514,14 +514,14 @@ pub fn serialize_msg_c_f4<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg_c_f4(f2@, f3@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg_c_f4(f2@, f3@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg_c_f4(f2@, f3@).spec_serialize(v@)) }, { let combinator = msg_c_f4( f2, f3 ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn msg_c_f4_len<'a>(v: >>::SType, f2: u8, f3: u24) -> (serialize_len: usize) @@ -690,7 +690,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MsgDCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MsgDCombinatorAlias = Mapped; @@ -742,14 +742,14 @@ pub fn serialize_msg_d<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg_d().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg_d().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg_d().spec_serialize(v@)) }, { let combinator = msg_d(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg_d_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -887,7 +887,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MsgBCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MsgBCombinatorAlias = Mapped; @@ -939,14 +939,14 @@ pub fn serialize_msg_b<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg_b().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg_b().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg_b().spec_serialize(v@)) }, { let combinator = msg_b(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg_b_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1094,7 +1094,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MsgACombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MsgACombinatorAlias = Mapped; @@ -1146,14 +1146,14 @@ pub fn serialize_msg_a<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg_a().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg_a().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg_a().spec_serialize(v@)) }, { let combinator = msg_a(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg_a_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1297,7 +1297,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MsgCCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MsgCCombinatorAlias = Mapped, MsgCF4Combinator, MsgCCont0>, MsgCMapper>; @@ -1379,14 +1379,14 @@ pub fn serialize_msg_c<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg_c().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg_c().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg_c().spec_serialize(v@)) }, { let combinator = msg_c(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg_c_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1518,14 +1518,14 @@ pub fn serialize_F5<'a>(v: >>:: spec_F5().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_F5().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_F5().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_F5().spec_serialize(v@)) }, { let combinator = F5(); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn F5_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/enum_constraints.rs b/vest-dsl/test/src/enum_constraints.rs index cf06e59f..1d75f70f 100644 --- a/vest-dsl/test/src/enum_constraints.rs +++ b/vest-dsl/test/src/enum_constraints.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -199,7 +199,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MyTypedEnumCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MyTypedEnumCombinatorAlias = TryMap; @@ -243,14 +243,14 @@ pub fn serialize_my_typed_enum<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_my_typed_enum().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_my_typed_enum().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_my_typed_enum().spec_serialize(v@)) }, { let combinator = my_typed_enum(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn my_typed_enum_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -430,7 +430,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MyEnumCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MyEnumCombinatorAlias = TryMap; @@ -474,14 +474,14 @@ pub fn serialize_my_enum<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_my_enum().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_my_enum().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_my_enum().spec_serialize(v@)) }, { let combinator = my_enum(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn my_enum_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -708,7 +708,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TypedEnumConstraintsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TypedEnumConstraintsCombinatorAlias = Mapped; @@ -760,14 +760,14 @@ pub fn serialize_typed_enum_constraints<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_typed_enum_constraints().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_typed_enum_constraints().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_typed_enum_constraints().spec_serialize(v@)) }, { let combinator = typed_enum_constraints(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn typed_enum_constraints_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -994,7 +994,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EnumConstraintsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EnumConstraintsCombinatorAlias = Mapped; @@ -1046,14 +1046,14 @@ pub fn serialize_enum_constraints<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_enum_constraints().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_enum_constraints().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_enum_constraints().spec_serialize(v@)) }, { let combinator = enum_constraints(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn enum_constraints_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/enums.rs b/vest-dsl/test/src/enums.rs index 9c730cbc..e56378da 100644 --- a/vest-dsl/test/src/enums.rs +++ b/vest-dsl/test/src/enums.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -204,7 +204,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ATypedChooseCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ATypedChooseCombinatorAlias = Mapped; @@ -254,14 +254,14 @@ pub fn serialize_a_typed_choose<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_typed_choose(e@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_typed_choose(e@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_typed_choose(e@).spec_serialize(v@)) }, { let combinator = a_typed_choose( e ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn a_typed_choose_len<'a>(v: >>::SType, e: ATypedClosedEnum) -> (serialize_len: usize) @@ -335,7 +335,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ATypedOpenEnumCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ATypedOpenEnumCombinatorAlias = U32Le; @@ -379,14 +379,14 @@ pub fn serialize_a_typed_open_enum<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_typed_open_enum().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_typed_open_enum().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_typed_open_enum().spec_serialize(v@)) }, { let combinator = a_typed_open_enum(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn a_typed_open_enum_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -631,7 +631,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ANonDependentChooseCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ANonDependentChooseCombinatorAlias = Mapped; @@ -675,14 +675,14 @@ pub fn serialize_a_non_dependent_choose<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_non_dependent_choose().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_non_dependent_choose().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_non_dependent_choose().spec_serialize(v@)) }, { let combinator = a_non_dependent_choose(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn a_non_dependent_choose_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -867,7 +867,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ARegularChooseCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ARegularChooseCombinatorAlias = Mapped; @@ -917,14 +917,14 @@ pub fn serialize_a_regular_choose<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_regular_choose(e@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_regular_choose(e@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_regular_choose(e@).spec_serialize(v@)) }, { let combinator = a_regular_choose( e ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn a_regular_choose_len<'a>(v: >>::SType, e: AClosedEnum) -> (serialize_len: usize) @@ -1105,7 +1105,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AMixedTypedEnumCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AMixedTypedEnumCombinatorAlias = TryMap; @@ -1149,14 +1149,14 @@ pub fn serialize_a_mixed_typed_enum<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_mixed_typed_enum().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_mixed_typed_enum().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_mixed_typed_enum().spec_serialize(v@)) }, { let combinator = a_mixed_typed_enum(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn a_mixed_typed_enum_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1336,7 +1336,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AClosedEnumCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AClosedEnumCombinatorAlias = TryMap; @@ -1380,14 +1380,14 @@ pub fn serialize_a_closed_enum<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_closed_enum().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_closed_enum().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_closed_enum().spec_serialize(v@)) }, { let combinator = a_closed_enum(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn a_closed_enum_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1567,7 +1567,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ATypedClosedEnumCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ATypedClosedEnumCombinatorAlias = TryMap; @@ -1611,14 +1611,14 @@ pub fn serialize_a_typed_closed_enum<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_typed_closed_enum().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_typed_closed_enum().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_typed_closed_enum().spec_serialize(v@)) }, { let combinator = a_typed_closed_enum(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn a_typed_closed_enum_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1691,7 +1691,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AnOpenEnumCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AnOpenEnumCombinatorAlias = U8; @@ -1735,14 +1735,14 @@ pub fn serialize_an_open_enum<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_an_open_enum().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_an_open_enum().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_an_open_enum().spec_serialize(v@)) }, { let combinator = an_open_enum(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn an_open_enum_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1943,7 +1943,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ATypedChooseWithDefaultCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ATypedChooseWithDefaultCombinatorAlias = Mapped; @@ -1993,14 +1993,14 @@ pub fn serialize_a_typed_choose_with_default<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_typed_choose_with_default(e@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_typed_choose_with_default(e@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_typed_choose_with_default(e@).spec_serialize(v@)) }, { let combinator = a_typed_choose_with_default( e ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn a_typed_choose_with_default_len<'a>(v: >>::SType, e: u32) -> (serialize_len: usize) @@ -2202,7 +2202,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AChooseWithDefaultCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AChooseWithDefaultCombinatorAlias = Mapped; @@ -2252,14 +2252,14 @@ pub fn serialize_a_choose_with_default<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a_choose_with_default(e@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a_choose_with_default(e@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a_choose_with_default(e@).spec_serialize(v@)) }, { let combinator = a_choose_with_default( e ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn a_choose_with_default_len<'a>(v: >>::SType, e: u8) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/ikev2.rs b/vest-dsl/test/src/ikev2.rs index 2eba4416..5483fb92 100644 --- a/vest-dsl/test/src/ikev2.rs +++ b/vest-dsl/test/src/ikev2.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -92,7 +92,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IkeProtocolIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IkeProtocolIdCombinatorAlias = U8; @@ -136,14 +136,14 @@ pub fn serialize_ike_protocol_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ike_protocol_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ike_protocol_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ike_protocol_id().spec_serialize(v@)) }, { let combinator = ike_protocol_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ike_protocol_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -230,7 +230,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProposalSpiSizeByteCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProposalSpiSizeByteCombinatorAlias = Refined; @@ -274,14 +274,14 @@ pub fn serialize_proposal_spi_size_byte<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_proposal_spi_size_byte().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_proposal_spi_size_byte().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_proposal_spi_size_byte().spec_serialize(v@)) }, { let combinator = proposal_spi_size_byte(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn proposal_spi_size_byte_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -358,7 +358,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TransformTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TransformTypeCombinatorAlias = U8; @@ -402,14 +402,14 @@ pub fn serialize_transform_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_transform_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_transform_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_transform_type().spec_serialize(v@)) }, { let combinator = transform_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn transform_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -500,7 +500,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EncrIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EncrIdCombinatorAlias = U16Be; @@ -544,14 +544,14 @@ pub fn serialize_encr_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_encr_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_encr_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_encr_id().spec_serialize(v@)) }, { let combinator = encr_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn encr_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -624,7 +624,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PrfIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PrfIdCombinatorAlias = U16Be; @@ -668,14 +668,14 @@ pub fn serialize_prf_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_prf_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_prf_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_prf_id().spec_serialize(v@)) }, { let combinator = prf_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn prf_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -754,7 +754,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IntegIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IntegIdCombinatorAlias = U16Be; @@ -798,14 +798,14 @@ pub fn serialize_integ_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_integ_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_integ_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_integ_id().spec_serialize(v@)) }, { let combinator = integ_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn integ_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -890,7 +890,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DhIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DhIdCombinatorAlias = U16Be; @@ -934,14 +934,14 @@ pub fn serialize_dh_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_dh_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_dh_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_dh_id().spec_serialize(v@)) }, { let combinator = dh_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn dh_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1012,7 +1012,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EsnIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EsnIdCombinatorAlias = U16Be; @@ -1056,14 +1056,14 @@ pub fn serialize_esn_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_esn_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_esn_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_esn_id().spec_serialize(v@)) }, { let combinator = esn_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn esn_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1296,7 +1296,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TransformIdValueCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TransformIdValueCombinatorAlias = Mapped; @@ -1346,14 +1346,14 @@ pub fn serialize_transform_id_value<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_transform_id_value(kind@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_transform_id_value(kind@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_transform_id_value(kind@).spec_serialize(v@)) }, { let combinator = transform_id_value( kind ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn transform_id_value_len<'a>(v: >>::SType, kind: u8) -> (serialize_len: usize) @@ -1503,7 +1503,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TransformAttrKeyLengthCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TransformAttrKeyLengthCombinatorAlias = Mapped; @@ -1555,14 +1555,14 @@ pub fn serialize_transform_attr_key_length<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_transform_attr_key_length().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_transform_attr_key_length().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_transform_attr_key_length().spec_serialize(v@)) }, { let combinator = transform_attr_key_length(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn transform_attr_key_length_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1723,7 +1723,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TransformAttrTvCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TransformAttrTvCombinatorAlias = Mapped, U16Be, TransformAttrTvCont0>, TransformAttrTvMapper>; @@ -1790,14 +1790,14 @@ pub fn serialize_transform_attr_tv<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_transform_attr_tv().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_transform_attr_tv().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_transform_attr_tv().spec_serialize(v@)) }, { let combinator = transform_attr_tv(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn transform_attr_tv_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1992,7 +1992,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TransformAttrTlvCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TransformAttrTlvCombinatorAlias = Mapped, U16Be, TransformAttrTlvCont1>, bytes::Variable, TransformAttrTlvCont0>, TransformAttrTlvMapper>; @@ -2074,14 +2074,14 @@ pub fn serialize_transform_attr_tlv<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_transform_attr_tlv().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_transform_attr_tlv().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_transform_attr_tlv().spec_serialize(v@)) }, { let combinator = transform_attr_tlv(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn transform_attr_tlv_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2350,7 +2350,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TransformAttrCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TransformAttrCombinatorAlias = Mapped; @@ -2394,14 +2394,14 @@ pub fn serialize_transform_attr<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_transform_attr().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_transform_attr().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_transform_attr().spec_serialize(v@)) }, { let combinator = transform_attr(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn transform_attr_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2599,7 +2599,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TransformCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TransformCombinatorAlias = Mapped, (Refined>, Refined)), TransformTypeCombinator, TransformCont1>, (Refined>, (TransformIdValueCombinator, AndThen>)), TransformCont0>, TransformMapper>; @@ -2681,14 +2681,14 @@ pub fn serialize_transform<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_transform().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_transform().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_transform().spec_serialize(v@)) }, { let combinator = transform(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn transform_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2900,7 +2900,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProposalBodySpi0Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProposalBodySpi0CombinatorAlias = Mapped; @@ -2958,14 +2958,14 @@ pub fn serialize_proposal_body_spi0<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_proposal_body_spi0(num_transforms@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_proposal_body_spi0(num_transforms@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_proposal_body_spi0(num_transforms@).spec_serialize(v@)) }, { let combinator = proposal_body_spi0( num_transforms ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn proposal_body_spi0_len<'a>(v: >>::SType, num_transforms: u8) -> (serialize_len: usize) @@ -3114,7 +3114,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProposalBodySpi4Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProposalBodySpi4CombinatorAlias = Mapped; @@ -3172,14 +3172,14 @@ pub fn serialize_proposal_body_spi4<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_proposal_body_spi4(num_transforms@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_proposal_body_spi4(num_transforms@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_proposal_body_spi4(num_transforms@).spec_serialize(v@)) }, { let combinator = proposal_body_spi4( num_transforms ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn proposal_body_spi4_len<'a>(v: >>::SType, num_transforms: u8) -> (serialize_len: usize) @@ -3328,7 +3328,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProposalBodySpi8Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProposalBodySpi8CombinatorAlias = Mapped; @@ -3386,14 +3386,14 @@ pub fn serialize_proposal_body_spi8<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_proposal_body_spi8(num_transforms@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_proposal_body_spi8(num_transforms@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_proposal_body_spi8(num_transforms@).spec_serialize(v@)) }, { let combinator = proposal_body_spi8( num_transforms ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn proposal_body_spi8_len<'a>(v: >>::SType, num_transforms: u8) -> (serialize_len: usize) @@ -3579,7 +3579,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProposalBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProposalBodyCombinatorAlias = AndThen>; @@ -3635,14 +3635,14 @@ pub fn serialize_proposal_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_proposal_body(num_transforms@, proposal_length@, spi_size@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_proposal_body(num_transforms@, proposal_length@, spi_size@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_proposal_body(num_transforms@, proposal_length@, spi_size@).spec_serialize(v@)) }, { let combinator = proposal_body( num_transforms, proposal_length, spi_size ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn proposal_body_len<'a>(v: >>::SType, num_transforms: u8, proposal_length: u16, spi_size: ProposalSpiSizeByte) -> (serialize_len: usize) @@ -3865,7 +3865,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProposalCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProposalCombinatorAlias = Mapped, (Refined>, Refined)), (Refined, IkeProtocolIdCombinator), ProposalCont3>, ProposalSpiSizeByteCombinator, ProposalCont2>, Refined, ProposalCont1>, ProposalBodyCombinator, ProposalCont0>, ProposalMapper>; @@ -3977,14 +3977,14 @@ pub fn serialize_proposal<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_proposal().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_proposal().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_proposal().spec_serialize(v@)) }, { let combinator = proposal(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn proposal_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4258,7 +4258,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SaPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SaPayloadBodyCombinatorAlias = Mapped>, SaPayloadBodyMapper>; @@ -4316,14 +4316,14 @@ pub fn serialize_sa_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_sa_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_sa_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_sa_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = sa_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn sa_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -4534,7 +4534,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TsIpv6Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TsIpv6CombinatorAlias = Mapped; @@ -4586,14 +4586,14 @@ pub fn serialize_ts_ipv6<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ts_ipv6().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ts_ipv6().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ts_ipv6().spec_serialize(v@)) }, { let combinator = ts_ipv6(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ts_ipv6_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4731,7 +4731,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2SaPayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2SaPayloadInnerCombinatorAlias = Mapped>, Ikev2SaPayloadInnerMapper>; @@ -4783,14 +4783,14 @@ pub fn serialize_ikev2_sa_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_sa_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_sa_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_sa_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_sa_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_sa_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4928,7 +4928,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NoncePayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NoncePayloadBodyCombinatorAlias = Mapped; @@ -4986,14 +4986,14 @@ pub fn serialize_nonce_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_nonce_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_nonce_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_nonce_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = nonce_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn nonce_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -5075,7 +5075,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IdTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IdTypeCombinatorAlias = U8; @@ -5119,14 +5119,14 @@ pub fn serialize_id_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_id_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_id_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_id_type().spec_serialize(v@)) }, { let combinator = id_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn id_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5293,7 +5293,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2IdPayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2IdPayloadInnerCombinatorAlias = Mapped; @@ -5345,14 +5345,14 @@ pub fn serialize_ikev2_id_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_id_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_id_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_id_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_id_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_id_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5500,7 +5500,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NotifyPayloadBodySpi0Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NotifyPayloadBodySpi0CombinatorAlias = Mapped; @@ -5552,14 +5552,14 @@ pub fn serialize_notify_payload_body_spi0<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_notify_payload_body_spi0().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_notify_payload_body_spi0().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_notify_payload_body_spi0().spec_serialize(v@)) }, { let combinator = notify_payload_body_spi0(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn notify_payload_body_spi0_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5626,7 +5626,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CfgAttrTypeWordCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CfgAttrTypeWordCombinatorAlias = Refined; @@ -5670,14 +5670,14 @@ pub fn serialize_cfg_attr_type_word<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cfg_attr_type_word().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cfg_attr_type_word().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cfg_attr_type_word().spec_serialize(v@)) }, { let combinator = cfg_attr_type_word(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn cfg_attr_type_word_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5821,7 +5821,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CfgAttributeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CfgAttributeCombinatorAlias = Mapped, bytes::Variable, CfgAttributeCont0>, CfgAttributeMapper>; @@ -5903,14 +5903,14 @@ pub fn serialize_cfg_attribute<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cfg_attribute().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cfg_attribute().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cfg_attribute().spec_serialize(v@)) }, { let combinator = cfg_attribute(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn cfg_attribute_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6045,7 +6045,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TsTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TsTypeCombinatorAlias = U8; @@ -6089,14 +6089,14 @@ pub fn serialize_ts_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ts_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ts_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ts_type().spec_serialize(v@)) }, { let combinator = ts_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ts_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6293,7 +6293,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TsIpv4SelectorBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TsIpv4SelectorBodyCombinatorAlias = Mapped; @@ -6345,14 +6345,14 @@ pub fn serialize_ts_ipv4_selector_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ts_ipv4_selector_body().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ts_ipv4_selector_body().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ts_ipv4_selector_body().spec_serialize(v@)) }, { let combinator = ts_ipv4_selector_body(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ts_ipv4_selector_body_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6549,7 +6549,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TsIpv6SelectorBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TsIpv6SelectorBodyCombinatorAlias = Mapped; @@ -6601,14 +6601,14 @@ pub fn serialize_ts_ipv6_selector_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ts_ipv6_selector_body().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ts_ipv6_selector_body().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ts_ipv6_selector_body().spec_serialize(v@)) }, { let combinator = ts_ipv6_selector_body(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ts_ipv6_selector_body_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6772,7 +6772,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TsUnknownInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TsUnknownInnerCombinatorAlias = Mapped), bytes::Variable, TsUnknownInnerCont0>, TsUnknownInnerMapper>; @@ -6839,14 +6839,14 @@ pub fn serialize_ts_unknown_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ts_unknown_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ts_unknown_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ts_unknown_inner().spec_serialize(v@)) }, { let combinator = ts_unknown_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ts_unknown_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7062,7 +7062,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TrafficSelectorTsBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TrafficSelectorTsBodyCombinatorAlias = Mapped; @@ -7112,14 +7112,14 @@ pub fn serialize_traffic_selector_ts_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_traffic_selector_ts_body(ts_type_byte@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_traffic_selector_ts_body(ts_type_byte@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_traffic_selector_ts_body(ts_type_byte@).spec_serialize(v@)) }, { let combinator = traffic_selector_ts_body( ts_type_byte ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn traffic_selector_ts_body_len<'a>(v: >>::SType, ts_type_byte: u8) -> (serialize_len: usize) @@ -7261,7 +7261,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TrafficSelectorCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TrafficSelectorCombinatorAlias = Mapped, TrafficSelectorMapper>; @@ -7328,14 +7328,14 @@ pub fn serialize_traffic_selector<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_traffic_selector().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_traffic_selector().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_traffic_selector().spec_serialize(v@)) }, { let combinator = traffic_selector(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn traffic_selector_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7517,7 +7517,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2TsPayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2TsPayloadInnerCombinatorAlias = Mapped, (Refined, TagPred<[u8; 3]>>, AndThen>), Ikev2TsPayloadInnerCont0>, Ikev2TsPayloadInnerMapper>; @@ -7584,14 +7584,14 @@ pub fn serialize_ikev2_ts_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_ts_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_ts_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_ts_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_ts_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_ts_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7771,7 +7771,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EapSuccessRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EapSuccessRestCombinatorAlias = Mapped; @@ -7823,14 +7823,14 @@ pub fn serialize_eap_success_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_eap_success_rest().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_eap_success_rest().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_eap_success_rest().spec_serialize(v@)) }, { let combinator = eap_success_rest(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn eap_success_rest_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7917,7 +7917,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IpsecSpiSizeOrNoneCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IpsecSpiSizeOrNoneCombinatorAlias = Refined; @@ -7961,14 +7961,14 @@ pub fn serialize_ipsec_spi_size_or_none<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ipsec_spi_size_or_none().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ipsec_spi_size_or_none().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ipsec_spi_size_or_none().spec_serialize(v@)) }, { let combinator = ipsec_spi_size_or_none(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ipsec_spi_size_or_none_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8043,7 +8043,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EapCodeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EapCodeCombinatorAlias = U8; @@ -8087,14 +8087,14 @@ pub fn serialize_eap_code<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_eap_code().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_eap_code().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_eap_code().spec_serialize(v@)) }, { let combinator = eap_code(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn eap_code_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8243,7 +8243,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EapFailureRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EapFailureRestCombinatorAlias = Mapped; @@ -8295,14 +8295,14 @@ pub fn serialize_eap_failure_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_eap_failure_rest().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_eap_failure_rest().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_eap_failure_rest().spec_serialize(v@)) }, { let combinator = eap_failure_rest(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn eap_failure_rest_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8469,7 +8469,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EapReqRespRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EapReqRespRestCombinatorAlias = Mapped), (U8, bytes::Variable), EapReqRespRestCont0>, EapReqRespRestMapper>; @@ -8536,14 +8536,14 @@ pub fn serialize_eap_req_resp_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_eap_req_resp_rest().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_eap_req_resp_rest().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_eap_req_resp_rest().spec_serialize(v@)) }, { let combinator = eap_req_resp_rest(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn eap_req_resp_rest_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8775,7 +8775,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2EapPayloadInnerEapRestCombin fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2EapPayloadInnerEapRestCombinatorAlias = Mapped; @@ -8825,14 +8825,14 @@ pub fn serialize_ikev2_eap_payload_inner_eap_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_eap_payload_inner_eap_rest(code@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_eap_payload_inner_eap_rest(code@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_eap_payload_inner_eap_rest(code@).spec_serialize(v@)) }, { let combinator = ikev2_eap_payload_inner_eap_rest( code ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn ikev2_eap_payload_inner_eap_rest_len<'a>(v: >>::SType, code: u8) -> (serialize_len: usize) @@ -8974,7 +8974,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2EapPayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2EapPayloadInnerCombinatorAlias = Mapped, Ikev2EapPayloadInnerMapper>; @@ -9041,14 +9041,14 @@ pub fn serialize_ikev2_eap_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_eap_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_eap_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_eap_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_eap_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_eap_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9170,7 +9170,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertEncodingCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertEncodingCombinatorAlias = U8; @@ -9214,14 +9214,14 @@ pub fn serialize_cert_encoding<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cert_encoding().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cert_encoding().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cert_encoding().spec_serialize(v@)) }, { let combinator = cert_encoding(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn cert_encoding_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9369,7 +9369,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertreqPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertreqPayloadBodyCombinatorAlias = Mapped; @@ -9427,14 +9427,14 @@ pub fn serialize_certreq_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certreq_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certreq_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certreq_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = certreq_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn certreq_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -9636,7 +9636,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EapPayloadBodyEapRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EapPayloadBodyEapRestCombinatorAlias = Mapped; @@ -9686,14 +9686,14 @@ pub fn serialize_eap_payload_body_eap_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_eap_payload_body_eap_rest(code@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_eap_payload_body_eap_rest(code@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_eap_payload_body_eap_rest(code@).spec_serialize(v@)) }, { let combinator = eap_payload_body_eap_rest( code ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn eap_payload_body_eap_rest_len<'a>(v: >>::SType, code: u8) -> (serialize_len: usize) @@ -9769,7 +9769,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CfgTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CfgTypeCombinatorAlias = U8; @@ -9813,14 +9813,14 @@ pub fn serialize_cfg_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cfg_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cfg_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cfg_type().spec_serialize(v@)) }, { let combinator = cfg_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn cfg_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9987,7 +9987,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CpPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CpPayloadBodyCombinatorAlias = Mapped; @@ -10045,14 +10045,14 @@ pub fn serialize_cp_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cp_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cp_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cp_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = cp_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn cp_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -10194,7 +10194,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EapPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EapPayloadBodyCombinatorAlias = Mapped, EapPayloadBodyMapper>; @@ -10267,14 +10267,14 @@ pub fn serialize_eap_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_eap_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_eap_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_eap_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = eap_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn eap_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -10387,7 +10387,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExchangeTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExchangeTypeCombinatorAlias = U8; @@ -10431,14 +10431,14 @@ pub fn serialize_exchange_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_exchange_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_exchange_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_exchange_type().spec_serialize(v@)) }, { let combinator = exchange_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn exchange_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10563,7 +10563,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NotifyMsgTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NotifyMsgTypeCombinatorAlias = U16Be; @@ -10607,14 +10607,14 @@ pub fn serialize_notify_msg_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_notify_msg_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_notify_msg_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_notify_msg_type().spec_serialize(v@)) }, { let combinator = notify_msg_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn notify_msg_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10775,7 +10775,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for KePayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type KePayloadBodyCombinatorAlias = Mapped; @@ -10833,14 +10833,14 @@ pub fn serialize_ke_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ke_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ke_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ke_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = ke_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn ke_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -10942,7 +10942,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NextPayloadTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NextPayloadTypeCombinatorAlias = U8; @@ -10986,14 +10986,14 @@ pub fn serialize_next_payload_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_next_payload_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_next_payload_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_next_payload_type().spec_serialize(v@)) }, { let combinator = next_payload_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn next_payload_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11080,7 +11080,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IkeVersionByteCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IkeVersionByteCombinatorAlias = Refined; @@ -11124,14 +11124,14 @@ pub fn serialize_ike_version_byte<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ike_version_byte().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ike_version_byte().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ike_version_byte().spec_serialize(v@)) }, { let combinator = ike_version_byte(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ike_version_byte_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11318,7 +11318,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IkeFlagsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IkeFlagsCombinatorAlias = TryMap; @@ -11362,14 +11362,14 @@ pub fn serialize_ike_flags<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ike_flags().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ike_flags().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ike_flags().spec_serialize(v@)) }, { let combinator = ike_flags(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ike_flags_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11609,7 +11609,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IkeHeaderCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IkeHeaderCombinatorAlias = Mapped; @@ -11661,14 +11661,14 @@ pub fn serialize_ike_header<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ike_header().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ike_header().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ike_header().spec_serialize(v@)) }, { let combinator = ike_header(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ike_header_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11735,7 +11735,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DeletePayloadSpisNoneCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DeletePayloadSpisNoneCombinatorAlias = bytes::Fixed<0>; @@ -11779,14 +11779,14 @@ pub fn serialize_delete_payload_spis_none<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_delete_payload_spis_none().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_delete_payload_spis_none().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_delete_payload_spis_none().spec_serialize(v@)) }, { let combinator = delete_payload_spis_none(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn delete_payload_spis_none_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11965,7 +11965,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EapMessageSuccessFailureCombinato fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EapMessageSuccessFailureCombinatorAlias = Mapped; @@ -12017,14 +12017,14 @@ pub fn serialize_eap_message_success_failure<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_eap_message_success_failure().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_eap_message_success_failure().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_eap_message_success_failure().spec_serialize(v@)) }, { let combinator = eap_message_success_failure(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn eap_message_success_failure_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12172,7 +12172,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2CertPayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2CertPayloadInnerCombinatorAlias = Mapped; @@ -12224,14 +12224,14 @@ pub fn serialize_ikev2_cert_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_cert_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_cert_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_cert_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_cert_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_cert_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12304,7 +12304,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AuthMethodCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AuthMethodCombinatorAlias = U8; @@ -12348,14 +12348,14 @@ pub fn serialize_auth_method<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_auth_method().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_auth_method().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_auth_method().spec_serialize(v@)) }, { let combinator = auth_method(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn auth_method_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12522,7 +12522,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2AuthPayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2AuthPayloadInnerCombinatorAlias = Mapped; @@ -12574,14 +12574,14 @@ pub fn serialize_ikev2_auth_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_auth_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_auth_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_auth_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_auth_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_auth_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12719,7 +12719,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2NoncePayloadInnerCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2NoncePayloadInnerCombinatorAlias = Mapped; @@ -12771,14 +12771,14 @@ pub fn serialize_ikev2_nonce_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_nonce_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_nonce_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_nonce_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_nonce_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_nonce_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12916,7 +12916,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2VendorIdPayloadInnerCombinat fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2VendorIdPayloadInnerCombinatorAlias = Mapped; @@ -12968,14 +12968,14 @@ pub fn serialize_ikev2_vendor_id_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_vendor_id_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_vendor_id_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_vendor_id_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_vendor_id_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_vendor_id_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13113,7 +13113,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SkPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SkPayloadBodyCombinatorAlias = Mapped; @@ -13171,14 +13171,14 @@ pub fn serialize_sk_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_sk_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_sk_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_sk_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = sk_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn sk_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -13359,7 +13359,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NotifyProtocolIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NotifyProtocolIdCombinatorAlias = TryMap; @@ -13403,14 +13403,14 @@ pub fn serialize_notify_protocol_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_notify_protocol_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_notify_protocol_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_notify_protocol_id().spec_serialize(v@)) }, { let combinator = notify_protocol_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn notify_protocol_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13560,7 +13560,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2NotifyPayloadInnerCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2NotifyPayloadInnerCombinatorAlias = Mapped, (NotifyMsgTypeCombinator, (bytes::Variable, bytes::Tail)), Ikev2NotifyPayloadInnerCont0>, Ikev2NotifyPayloadInnerMapper>; @@ -13642,14 +13642,14 @@ pub fn serialize_ikev2_notify_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_notify_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_notify_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_notify_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_notify_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_notify_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13780,7 +13780,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DeletePayloadSpisIpsecCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DeletePayloadSpisIpsecCombinatorAlias = RepeatN; @@ -13826,14 +13826,14 @@ pub fn serialize_delete_payload_spis_ipsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_delete_payload_spis_ipsec(num_spis@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_delete_payload_spis_ipsec(num_spis@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_delete_payload_spis_ipsec(num_spis@).spec_serialize(v@)) }, { let combinator = delete_payload_spis_ipsec( num_spis ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn delete_payload_spis_ipsec_len<'a>(v: >>::SType, num_spis: u16) -> (serialize_len: usize) @@ -14001,7 +14001,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EapMessageReqRespCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EapMessageReqRespCombinatorAlias = Mapped, (U8, Refined)), (U8, bytes::Variable), EapMessageReqRespCont0>, EapMessageReqRespMapper>; @@ -14068,14 +14068,14 @@ pub fn serialize_eap_message_req_resp<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_eap_message_req_resp().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_eap_message_req_resp().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_eap_message_req_resp().spec_serialize(v@)) }, { let combinator = eap_message_req_resp(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn eap_message_req_resp_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -14254,7 +14254,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NotifyPayloadBodySpi4Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NotifyPayloadBodySpi4CombinatorAlias = Mapped; @@ -14306,14 +14306,14 @@ pub fn serialize_notify_payload_body_spi4<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_notify_payload_body_spi4().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_notify_payload_body_spi4().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_notify_payload_body_spi4().spec_serialize(v@)) }, { let combinator = notify_payload_body_spi4(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn notify_payload_body_spi4_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -14482,7 +14482,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NotifyPayloadBodyRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NotifyPayloadBodyRestCombinatorAlias = AndThen>; @@ -14535,14 +14535,14 @@ pub fn serialize_notify_payload_body_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_notify_payload_body_rest(payload_length@, spi_size@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_notify_payload_body_rest(payload_length@, spi_size@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_notify_payload_body_rest(payload_length@, spi_size@).spec_serialize(v@)) }, { let combinator = notify_payload_body_rest( payload_length, spi_size ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn notify_payload_body_rest_len<'a>(v: >>::SType, payload_length: u16, spi_size: IpsecSpiSizeOrNone) -> (serialize_len: usize) @@ -14691,7 +14691,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NotifyPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NotifyPayloadBodyCombinatorAlias = Mapped, (NotifyMsgTypeCombinator, NotifyPayloadBodyRestCombinator), NotifyPayloadBodyCont0>, NotifyPayloadBodyMapper>; @@ -14779,14 +14779,14 @@ pub fn serialize_notify_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_notify_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_notify_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_notify_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = notify_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn notify_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -15011,7 +15011,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertPayloadBodyCombinatorAlias = Mapped; @@ -15069,14 +15069,14 @@ pub fn serialize_cert_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cert_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cert_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cert_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = cert_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn cert_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -15228,7 +15228,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TsPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TsPayloadBodyCombinatorAlias = Mapped, (Refined, TagPred<[u8; 3]>>, AndThen>), TsPayloadBodyCont0>, TsPayloadBodyMapper>; @@ -15301,14 +15301,14 @@ pub fn serialize_ts_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ts_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ts_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ts_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = ts_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn ts_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -15484,7 +15484,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for VendorIdPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type VendorIdPayloadBodyCombinatorAlias = Mapped; @@ -15542,14 +15542,14 @@ pub fn serialize_vendor_id_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_vendor_id_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_vendor_id_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_vendor_id_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = vendor_id_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn vendor_id_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -15723,7 +15723,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PayloadCriticalCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PayloadCriticalCombinatorAlias = TryMap; @@ -15767,14 +15767,14 @@ pub fn serialize_payload_critical<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_payload_critical().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_payload_critical().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_payload_critical().spec_serialize(v@)) }, { let combinator = payload_critical(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn payload_critical_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -15943,7 +15943,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DeletePayloadBodySpisCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DeletePayloadBodySpisCombinatorAlias = Mapped; @@ -15993,14 +15993,14 @@ pub fn serialize_delete_payload_body_spis<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_delete_payload_body_spis(num_spis@, spi_size@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_delete_payload_body_spis(num_spis@, spi_size@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_delete_payload_body_spis(num_spis@, spi_size@).spec_serialize(v@)) }, { let combinator = delete_payload_body_spis( num_spis, spi_size ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn delete_payload_body_spis_len<'a>(v: >>::SType, num_spis: u16, spi_size: IpsecSpiSizeOrNone) -> (serialize_len: usize) @@ -16148,7 +16148,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DeletePayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DeletePayloadBodyCombinatorAlias = Mapped, U16Be, DeletePayloadBodyCont1>, DeletePayloadBodySpisCombinator, DeletePayloadBodyCont0>, DeletePayloadBodyMapper>; @@ -16245,14 +16245,14 @@ pub fn serialize_delete_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_delete_payload_body().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_delete_payload_body().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_delete_payload_body().spec_serialize(v@)) }, { let combinator = delete_payload_body(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn delete_payload_body_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16492,7 +16492,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IkeMessageCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IkeMessageCombinatorAlias = Mapped, IkeMessageMapper>; @@ -16559,14 +16559,14 @@ pub fn serialize_ike_message<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ike_message().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ike_message().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ike_message().spec_serialize(v@)) }, { let combinator = ike_message(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ike_message_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16755,7 +16755,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for GenericPayloadHeaderCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type GenericPayloadHeaderCombinatorAlias = Mapped; @@ -16807,14 +16807,14 @@ pub fn serialize_generic_payload_header<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_generic_payload_header().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_generic_payload_header().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_generic_payload_header().spec_serialize(v@)) }, { let combinator = generic_payload_header(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn generic_payload_header_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16952,7 +16952,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2SkPayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2SkPayloadInnerCombinatorAlias = Mapped; @@ -17004,14 +17004,14 @@ pub fn serialize_ikev2_sk_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_sk_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_sk_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_sk_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_sk_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_sk_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17221,7 +17221,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TsIpv4Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TsIpv4CombinatorAlias = Mapped; @@ -17273,14 +17273,14 @@ pub fn serialize_ts_ipv4<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ts_ipv4().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ts_ipv4().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ts_ipv4().spec_serialize(v@)) }, { let combinator = ts_ipv4(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ts_ipv4_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17447,7 +17447,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2CpPayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2CpPayloadInnerCombinatorAlias = Mapped; @@ -17499,14 +17499,14 @@ pub fn serialize_ikev2_cp_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_cp_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_cp_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_cp_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_cp_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_cp_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17667,7 +17667,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2KePayloadInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2KePayloadInnerCombinatorAlias = Mapped; @@ -17719,14 +17719,14 @@ pub fn serialize_ikev2_ke_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_ke_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_ke_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_ke_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_ke_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_ke_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17893,7 +17893,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AuthPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AuthPayloadBodyCombinatorAlias = Mapped; @@ -17951,14 +17951,14 @@ pub fn serialize_auth_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_auth_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_auth_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_auth_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = auth_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn auth_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -18126,7 +18126,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IdPayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type IdPayloadBodyCombinatorAlias = Mapped; @@ -18184,14 +18184,14 @@ pub fn serialize_id_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_id_payload_body(payload_length@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_id_payload_body(payload_length@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_id_payload_body(payload_length@).spec_serialize(v@)) }, { let combinator = id_payload_body( payload_length ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn id_payload_body_len<'a>(v: >>::SType, payload_length: u16) -> (serialize_len: usize) @@ -18340,7 +18340,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2CertreqPayloadInnerCombinato fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2CertreqPayloadInnerCombinatorAlias = Mapped; @@ -18392,14 +18392,14 @@ pub fn serialize_ikev2_certreq_payload_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_certreq_payload_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_certreq_payload_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_certreq_payload_inner().spec_serialize(v@)) }, { let combinator = ikev2_certreq_payload_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ikev2_certreq_payload_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -18808,7 +18808,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2PayloadBodyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2PayloadBodyCombinatorAlias = Mapped; @@ -18858,14 +18858,14 @@ pub fn serialize_ikev2_payload_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_payload_body(next_pt@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_payload_body(next_pt@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_payload_body(next_pt@).spec_serialize(v@)) }, { let combinator = ikev2_payload_body( next_pt ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn ikev2_payload_body_len<'a>(v: >>::SType, next_pt: u8) -> (serialize_len: usize) @@ -19007,7 +19007,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Ikev2PayloadCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Ikev2PayloadCombinatorAlias = Mapped, Ikev2PayloadCont0>, Ikev2PayloadMapper>; @@ -19080,14 +19080,14 @@ pub fn serialize_ikev2_payload<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ikev2_payload(next_pt@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ikev2_payload(next_pt@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ikev2_payload(next_pt@).spec_serialize(v@)) }, { let combinator = ikev2_payload( next_pt ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn ikev2_payload_len<'a>(v: >>::SType, next_pt: u8) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/josh.rs b/vest-dsl/test/src/josh.rs index e6df3368..626092be 100644 --- a/vest-dsl/test/src/josh.rs +++ b/vest-dsl/test/src/josh.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -148,7 +148,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TstTagCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TstTagCombinatorAlias = U8; @@ -192,14 +192,14 @@ pub fn serialize_tst_tag<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tst_tag().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tst_tag().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tst_tag().spec_serialize(v@)) }, { let combinator = tst_tag(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tst_tag_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -347,7 +347,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MydataCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MydataCombinatorAlias = Mapped; @@ -399,14 +399,14 @@ pub fn serialize_mydata<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mydata().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mydata().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mydata().spec_serialize(v@)) }, { let combinator = mydata(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn mydata_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1039,7 +1039,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TstMydataCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TstMydataCombinatorAlias = Mapped; @@ -1089,14 +1089,14 @@ pub fn serialize_tst_mydata<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tst_mydata(tag@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tst_mydata(tag@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tst_mydata(tag@).spec_serialize(v@)) }, { let combinator = tst_mydata( tag ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn tst_mydata_len<'a>(v: >>::SType, tag: u8) -> (serialize_len: usize) @@ -1238,7 +1238,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TstCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TstCombinatorAlias = Mapped, TstMapper>; @@ -1305,14 +1305,14 @@ pub fn serialize_tst<'a>(v: >> spec_tst().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tst().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tst().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tst().spec_serialize(v@)) }, { let combinator = tst(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tst_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1647,7 +1647,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PairStressCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PairStressCombinatorAlias = Mapped; @@ -1699,14 +1699,14 @@ pub fn serialize_pair_stress<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_pair_stress().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_pair_stress().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_pair_stress().spec_serialize(v@)) }, { let combinator = pair_stress(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn pair_stress_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/length_expr.rs b/vest-dsl/test/src/length_expr.rs index cec8fcbe..c2493544 100644 --- a/vest-dsl/test/src/length_expr.rs +++ b/vest-dsl/test/src/length_expr.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -180,7 +180,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HeaderCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HeaderCombinatorAlias = Mapped, U8, HeaderCont0>, HeaderMapper>; @@ -247,14 +247,14 @@ pub fn serialize_header<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_header().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_header().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_header().spec_serialize(v@)) }, { let combinator = header(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn header_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -352,7 +352,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HeaderAliasCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HeaderAliasCombinatorAlias = HeaderCombinator; @@ -396,14 +396,14 @@ pub fn serialize_header_alias<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_header_alias().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_header_alias().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_header_alias().spec_serialize(v@)) }, { let combinator = header_alias(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn header_alias_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -541,7 +541,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DivideCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DivideCombinatorAlias = Mapped; @@ -595,14 +595,14 @@ pub fn serialize_divide<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_divide(total@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_divide(total@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_divide(total@).spec_serialize(v@)) }, { let combinator = divide( total ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn divide_len<'a>(v: >>::SType, total: u32) -> (serialize_len: usize) @@ -771,7 +771,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FixedChoiceCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FixedChoiceCombinatorAlias = Mapped; @@ -817,14 +817,14 @@ pub fn serialize_fixed_choice<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_fixed_choice(tag@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_fixed_choice(tag@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_fixed_choice(tag@).spec_serialize(v@)) }, { let combinator = fixed_choice( tag ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn fixed_choice_len<'a>(v: >>::SType, tag: u8) -> (serialize_len: usize) @@ -962,7 +962,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SimpleSubCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SimpleSubCombinatorAlias = Mapped; @@ -1020,14 +1020,14 @@ pub fn serialize_simple_sub<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_simple_sub(len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_simple_sub(len@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_simple_sub(len@).spec_serialize(v@)) }, { let combinator = simple_sub( len ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn simple_sub_len<'a>(v: >>::SType, len: u16) -> (serialize_len: usize) @@ -1166,7 +1166,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AliasSizeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AliasSizeCombinatorAlias = Mapped, AliasSizeMapper>; @@ -1218,14 +1218,14 @@ pub fn serialize_alias_size<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_alias_size().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_alias_size().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_alias_size().spec_serialize(v@)) }, { let combinator = alias_size(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn alias_size_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1363,7 +1363,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MultiArithCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MultiArithCombinatorAlias = Mapped; @@ -1424,14 +1424,14 @@ pub fn serialize_multi_arith<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_multi_arith(total@, hdr_len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_multi_arith(total@, hdr_len@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_multi_arith(total@, hdr_len@).spec_serialize(v@)) }, { let combinator = multi_arith( total, hdr_len ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn multi_arith_len<'a>(v: >>::SType, total: u32, hdr_len: u8) -> (serialize_len: usize) @@ -1571,7 +1571,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SizeArithCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SizeArithCombinatorAlias = Mapped, SizeArithMapper>; @@ -1623,14 +1623,14 @@ pub fn serialize_size_arith<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_size_arith().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_size_arith().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_size_arith().spec_serialize(v@)) }, { let combinator = size_arith(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn size_arith_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1768,7 +1768,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PayloadWithHeaderCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PayloadWithHeaderCombinatorAlias = Mapped; @@ -1826,14 +1826,14 @@ pub fn serialize_payload_with_header<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_payload_with_header(hdr@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_payload_with_header(hdr@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_payload_with_header(hdr@).spec_serialize(v@)) }, { let combinator = payload_with_header( hdr ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn payload_with_header_len<'a>(v: >>::SType, hdr: Header) -> (serialize_len: usize) @@ -1972,7 +1972,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MixedConstCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MixedConstCombinatorAlias = Mapped; @@ -2030,14 +2030,14 @@ pub fn serialize_mixed_const<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mixed_const(len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mixed_const(len@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mixed_const(len@).spec_serialize(v@)) }, { let combinator = mixed_const( len ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn mixed_const_len<'a>(v: >>::SType, len: u16) -> (serialize_len: usize) @@ -2105,7 +2105,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ChoiceTagCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ChoiceTagCombinatorAlias = bytes::Fixed<2>; @@ -2149,14 +2149,14 @@ pub fn serialize_choice_tag<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_choice_tag().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_choice_tag().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_choice_tag().spec_serialize(v@)) }, { let combinator = choice_tag(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn choice_tag_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2294,7 +2294,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NamedSizeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NamedSizeCombinatorAlias = Mapped, NamedSizeMapper>; @@ -2346,14 +2346,14 @@ pub fn serialize_named_size<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_named_size().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_named_size().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_named_size().spec_serialize(v@)) }, { let combinator = named_size(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn named_size_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2491,7 +2491,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ChoiceFormatSizeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ChoiceFormatSizeCombinatorAlias = Mapped, ChoiceFormatSizeMapper>; @@ -2543,14 +2543,14 @@ pub fn serialize_choice_format_size<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_choice_format_size().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_choice_format_size().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_choice_format_size().spec_serialize(v@)) }, { let combinator = choice_format_size(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn choice_format_size_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2617,7 +2617,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HeaderBytesCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HeaderBytesCombinatorAlias = AndThen; @@ -2661,14 +2661,14 @@ pub fn serialize_header_bytes<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_header_bytes().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_header_bytes().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_header_bytes().spec_serialize(v@)) }, { let combinator = header_bytes(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn header_bytes_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2806,7 +2806,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MultiplyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MultiplyCombinatorAlias = Mapped; @@ -2864,14 +2864,14 @@ pub fn serialize_multiply<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_multiply(count@, size@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_multiply(count@, size@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_multiply(count@, size@).spec_serialize(v@)) }, { let combinator = multiply( count, size ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn multiply_len<'a>(v: >>::SType, count: u16, size: u8) -> (serialize_len: usize) @@ -3041,7 +3041,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ChoiceArraysFoldedBodyCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ChoiceArraysFoldedBodyCombinatorAlias = Mapped; @@ -3087,14 +3087,14 @@ pub fn serialize_choice_arrays_folded_body<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_choice_arrays_folded_body(tag@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_choice_arrays_folded_body(tag@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_choice_arrays_folded_body(tag@).spec_serialize(v@)) }, { let combinator = choice_arrays_folded_body( tag ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn choice_arrays_folded_body_len<'a>(v: >>::SType, tag: ChoiceTag) -> (serialize_len: usize) @@ -3235,7 +3235,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ChoiceArraysFoldedCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ChoiceArraysFoldedCombinatorAlias = Mapped, ChoiceArraysFoldedMapper>; @@ -3302,14 +3302,14 @@ pub fn serialize_choice_arrays_folded<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_choice_arrays_folded().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_choice_arrays_folded().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_choice_arrays_folded().spec_serialize(v@)) }, { let combinator = choice_arrays_folded(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn choice_arrays_folded_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3478,7 +3478,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParenExprCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParenExprCombinatorAlias = Mapped; @@ -3542,14 +3542,14 @@ pub fn serialize_paren_expr<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_paren_expr(a@, b@, c@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_paren_expr(a@, b@, c@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_paren_expr(a@, b@, c@).spec_serialize(v@)) }, { let combinator = paren_expr( a, b, c ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn paren_expr_len<'a>(v: >>::SType, a: u16, b: u8, c: u8) -> (serialize_len: usize) @@ -3690,7 +3690,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ReinterpretSizeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ReinterpretSizeCombinatorAlias = Mapped, ReinterpretSizeMapper>; @@ -3742,14 +3742,14 @@ pub fn serialize_reinterpret_size<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_reinterpret_size().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_reinterpret_size().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_reinterpret_size().spec_serialize(v@)) }, { let combinator = reinterpret_size(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn reinterpret_size_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3897,7 +3897,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PrimitiveSizesCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PrimitiveSizesCombinatorAlias = Mapped; @@ -3949,14 +3949,14 @@ pub fn serialize_primitive_sizes<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_primitive_sizes().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_primitive_sizes().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_primitive_sizes().spec_serialize(v@)) }, { let combinator = primitive_sizes(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn primitive_sizes_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/matches.rs b/vest-dsl/test/src/matches.rs index 97552dcb..b1cc665a 100644 --- a/vest-dsl/test/src/matches.rs +++ b/vest-dsl/test/src/matches.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -188,7 +188,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg5ContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg5ContentCombinatorAlias = Mapped; @@ -234,14 +234,14 @@ pub fn serialize_msg5_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg5_content(i@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg5_content(i@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg5_content(i@).spec_serialize(v@)) }, { let combinator = msg5_content( i ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn msg5_content_len<'a>(v: >>::SType, i: VarInt) -> (serialize_len: usize) @@ -308,7 +308,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HelloRetryRequestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HelloRetryRequestCombinatorAlias = U16Le; @@ -352,14 +352,14 @@ pub fn serialize_hello_retry_request<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_hello_retry_request().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_hello_retry_request().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_hello_retry_request().spec_serialize(v@)) }, { let combinator = hello_retry_request(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn hello_retry_request_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -426,7 +426,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ServerHelloCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ServerHelloCombinatorAlias = U32Le; @@ -470,14 +470,14 @@ pub fn serialize_server_hello<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_server_hello().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_server_hello().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_server_hello().spec_serialize(v@)) }, { let combinator = server_hello(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn server_hello_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -646,7 +646,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg1PayloadCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg1PayloadCombinatorAlias = Mapped; @@ -692,14 +692,14 @@ pub fn serialize_msg1_payload<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg1_payload(b@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg1_payload(b@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg1_payload(b@).spec_serialize(v@)) }, { let combinator = msg1_payload( b ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn msg1_payload_len<'a>(v: >>::SType, b: &'a [u8]) -> (serialize_len: usize) @@ -868,7 +868,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg4ContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg4ContentCombinatorAlias = Mapped; @@ -914,14 +914,14 @@ pub fn serialize_msg4_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg4_content(i@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg4_content(i@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg4_content(i@).spec_serialize(v@)) }, { let combinator = msg4_content( i ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn msg4_content_len<'a>(v: >>::SType, i: u24) -> (serialize_len: usize) @@ -1122,7 +1122,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg3ContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg3ContentCombinatorAlias = Mapped; @@ -1168,14 +1168,14 @@ pub fn serialize_msg3_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg3_content(i@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg3_content(i@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg3_content(i@).spec_serialize(v@)) }, { let combinator = msg3_content( i ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn msg3_content_len<'a>(v: >>::SType, i: u8) -> (serialize_len: usize) @@ -1316,7 +1316,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg3Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg3CombinatorAlias = Mapped, Msg3Mapper>; @@ -1383,14 +1383,14 @@ pub fn serialize_msg3<'a>(v: spec_msg3().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg3().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg3().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg3().spec_serialize(v@)) }, { let combinator = msg3(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg3_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1562,7 +1562,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg5Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg5CombinatorAlias = Mapped, Msg5Mapper>; @@ -1629,14 +1629,14 @@ pub fn serialize_msg5<'a>(v: spec_msg5().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg5().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg5().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg5().spec_serialize(v@)) }, { let combinator = msg5(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg5_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1836,7 +1836,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg2ContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg2ContentCombinatorAlias = Mapped; @@ -1882,14 +1882,14 @@ pub fn serialize_msg2_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg2_content(b@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg2_content(b@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg2_content(b@).spec_serialize(v@)) }, { let combinator = msg2_content( b ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn msg2_content_len<'a>(v: >>::SType, b: &'a [u8]) -> (serialize_len: usize) @@ -2030,7 +2030,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg1Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg1CombinatorAlias = Mapped, Msg1PayloadCombinator, Msg1Cont0>, Msg1Mapper>; @@ -2097,14 +2097,14 @@ pub fn serialize_msg1<'a>(v: spec_msg1().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg1().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg1().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg1().spec_serialize(v@)) }, { let combinator = msg1(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg1_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2276,7 +2276,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg2Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg2CombinatorAlias = Mapped, Msg2ContentCombinator, Msg2Cont0>, Msg2Mapper>; @@ -2343,14 +2343,14 @@ pub fn serialize_msg2<'a>(v: spec_msg2().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg2().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg2().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg2().spec_serialize(v@)) }, { let combinator = msg2(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg2_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2522,7 +2522,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Msg4Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Msg4CombinatorAlias = Mapped, Msg4Mapper>; @@ -2589,14 +2589,14 @@ pub fn serialize_msg4<'a>(v: spec_msg4().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg4().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg4().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg4().spec_serialize(v@)) }, { let combinator = msg4(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg4_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/nested_access.rs b/vest-dsl/test/src/nested_access.rs index 97731545..02828d7c 100644 --- a/vest-dsl/test/src/nested_access.rs +++ b/vest-dsl/test/src/nested_access.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -199,7 +199,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for GenericHeaderCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type GenericHeaderCombinatorAlias = Mapped; @@ -251,14 +251,14 @@ pub fn serialize_generic_header<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_generic_header().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_generic_header().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_generic_header().spec_serialize(v@)) }, { let combinator = generic_header(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn generic_header_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -406,7 +406,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OuterHeaderCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OuterHeaderCombinatorAlias = Mapped; @@ -458,14 +458,14 @@ pub fn serialize_outer_header<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_outer_header().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_outer_header().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_outer_header().spec_serialize(v@)) }, { let combinator = outer_header(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn outer_header_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -606,7 +606,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PayloadWithHeaderCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PayloadWithHeaderCombinatorAlias = Mapped, PayloadWithHeaderMapper>; @@ -673,14 +673,14 @@ pub fn serialize_payload_with_header<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_payload_with_header().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_payload_with_header().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_payload_with_header().spec_serialize(v@)) }, { let combinator = payload_with_header(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn payload_with_header_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -850,7 +850,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DeepNestedCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DeepNestedCombinatorAlias = Mapped, DeepNestedMapper>; @@ -917,14 +917,14 @@ pub fn serialize_deep_nested<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_deep_nested().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_deep_nested().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_deep_nested().spec_serialize(v@)) }, { let combinator = deep_nested(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn deep_nested_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1094,7 +1094,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CombinedExampleCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CombinedExampleCombinatorAlias = Mapped, CombinedExampleMapper>; @@ -1167,14 +1167,14 @@ pub fn serialize_combined_example<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_combined_example(total_len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_combined_example(total_len@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_combined_example(total_len@).spec_serialize(v@)) }, { let combinator = combined_example( total_len ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn combined_example_len<'a>(v: >>::SType, total_len: u32) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/opt.rs b/vest-dsl/test/src/opt.rs index 1b4ed351..2f036b43 100644 --- a/vest-dsl/test/src/opt.rs +++ b/vest-dsl/test/src/opt.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -93,7 +93,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ACombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ACombinatorAlias = Terminated, Preceded, bytes::Fixed<10>>>, Tag>; @@ -137,14 +137,14 @@ pub fn serialize_a<'a>(v: >>::ST spec_a().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_a().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_a().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_a().spec_serialize(v@)) }, { let combinator = a(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn a_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -302,7 +302,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for BCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type BCombinatorAlias = Mapped; @@ -354,14 +354,14 @@ pub fn serialize_b<'a>(v: >>::ST spec_b().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_b().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_b().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_b().spec_serialize(v@)) }, { let combinator = b(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn b_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -517,7 +517,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MsgCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MsgCombinatorAlias = Mapped; @@ -569,14 +569,14 @@ pub fn serialize_msg<'a>(v: >> spec_msg().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_msg().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_msg().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_msg().spec_serialize(v@)) }, { let combinator = msg(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn msg_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -643,7 +643,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OptmsgCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OptmsgCombinatorAlias = Opt; @@ -687,14 +687,14 @@ pub fn serialize_optmsg<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_optmsg().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_optmsg().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_optmsg().spec_serialize(v@)) }, { let combinator = optmsg(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn optmsg_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/test/src/repeat.rs b/vest-dsl/test/src/repeat.rs index cae995fd..1faae639 100644 --- a/vest-dsl/test/src/repeat.rs +++ b/vest-dsl/test/src/repeat.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -180,7 +180,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OpaqueU16Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OpaqueU16CombinatorAlias = Mapped, bytes::Variable, OpaqueU16Cont0>, OpaqueU16Mapper>; @@ -247,14 +247,14 @@ pub fn serialize_opaque_u16<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_opaque_u16().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_opaque_u16().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_opaque_u16().spec_serialize(v@)) }, { let combinator = opaque_u16(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn opaque_u16_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -352,7 +352,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for RepeatFixCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type RepeatFixCombinatorAlias = RepeatN; @@ -396,14 +396,14 @@ pub fn serialize_repeat_fix<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_repeat_fix().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_repeat_fix().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_repeat_fix().spec_serialize(v@)) }, { let combinator = repeat_fix(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn repeat_fix_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -470,7 +470,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ResponderIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ResponderIdCombinatorAlias = OpaqueU16Combinator; @@ -514,14 +514,14 @@ pub fn serialize_responder_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_responder_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_responder_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_responder_id().spec_serialize(v@)) }, { let combinator = responder_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn responder_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -682,7 +682,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ResponderIdListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ResponderIdListCombinatorAlias = Mapped, AndThen>, ResponderIdListCont0>, ResponderIdListMapper>; @@ -749,14 +749,14 @@ pub fn serialize_responder_id_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_responder_id_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_responder_id_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_responder_id_list().spec_serialize(v@)) }, { let combinator = responder_id_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn responder_id_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -928,7 +928,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for RepeatDynCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type RepeatDynCombinatorAlias = Mapped, RepeatDynCont0>, RepeatDynMapper>; @@ -995,14 +995,14 @@ pub fn serialize_repeat_dyn<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_repeat_dyn().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_repeat_dyn().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_repeat_dyn().spec_serialize(v@)) }, { let combinator = repeat_dyn(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn repeat_dyn_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/tls/src/tls_combinators.rs b/vest-dsl/tls/src/tls_combinators.rs index f141f5c9..03526950 100644 --- a/vest-dsl/tls/src/tls_combinators.rs +++ b/vest-dsl/tls/src/tls_combinators.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -192,7 +192,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AlertLevelCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AlertLevelCombinatorAlias = TryMap; @@ -236,14 +236,14 @@ pub fn serialize_alert_level<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_alert_level().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_alert_level().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_alert_level().spec_serialize(v@)) }, { let combinator = alert_level(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn alert_level_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -310,7 +310,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EmptyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EmptyCombinatorAlias = bytes::Fixed<0>; @@ -354,14 +354,14 @@ pub fn serialize_empty<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_empty().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_empty().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_empty().spec_serialize(v@)) }, { let combinator = empty(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn empty_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -502,7 +502,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Opaque0FfffCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Opaque0FfffCombinatorAlias = Mapped, Opaque0FfffMapper>; @@ -569,14 +569,14 @@ pub fn serialize_opaque_0_ffff<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_opaque_0_ffff().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_opaque_0_ffff().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_opaque_0_ffff().spec_serialize(v@)) }, { let combinator = opaque_0_ffff(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn opaque_0_ffff_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -674,7 +674,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OcspExtensionsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OcspExtensionsCombinatorAlias = Opaque0FfffCombinator; @@ -718,14 +718,14 @@ pub fn serialize_ocsp_extensions<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ocsp_extensions().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ocsp_extensions().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ocsp_extensions().spec_serialize(v@)) }, { let combinator = ocsp_extensions(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ocsp_extensions_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -846,7 +846,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExtensionTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExtensionTypeCombinatorAlias = U16Be; @@ -890,14 +890,14 @@ pub fn serialize_extension_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_extension_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_extension_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_extension_type().spec_serialize(v@)) }, { let combinator = extension_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn extension_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1000,7 +1000,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SignatureSchemeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SignatureSchemeCombinatorAlias = U16Be; @@ -1044,14 +1044,14 @@ pub fn serialize_signature_scheme<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_signature_scheme().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_signature_scheme().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_signature_scheme().spec_serialize(v@)) }, { let combinator = signature_scheme(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn signature_scheme_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1212,7 +1212,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SignatureSchemeListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SignatureSchemeListCombinatorAlias = Mapped, AndThen>, SignatureSchemeListCont0>, SignatureSchemeListMapper>; @@ -1279,14 +1279,14 @@ pub fn serialize_signature_scheme_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_signature_scheme_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_signature_scheme_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_signature_scheme_list().spec_serialize(v@)) }, { let combinator = signature_scheme_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn signature_scheme_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1478,7 +1478,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Opaque1FfffCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Opaque1FfffCombinatorAlias = Mapped, bytes::Variable, Opaque1FfffCont0>, Opaque1FfffMapper>; @@ -1545,14 +1545,14 @@ pub fn serialize_opaque_1_ffff<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_opaque_1_ffff().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_opaque_1_ffff().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_opaque_1_ffff().spec_serialize(v@)) }, { let combinator = opaque_1_ffff(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn opaque_1_ffff_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1650,7 +1650,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DistinguishedNameCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DistinguishedNameCombinatorAlias = Opaque1FfffCombinator; @@ -1694,14 +1694,14 @@ pub fn serialize_distinguished_name<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_distinguished_name().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_distinguished_name().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_distinguished_name().spec_serialize(v@)) }, { let combinator = distinguished_name(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn distinguished_name_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1862,7 +1862,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateAuthoritiesExtensionCo fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateAuthoritiesExtensionCombinatorAlias = Mapped, AndThen>, CertificateAuthoritiesExtensionCont0>, CertificateAuthoritiesExtensionMapper>; @@ -1929,14 +1929,14 @@ pub fn serialize_certificate_authorities_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_authorities_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_authorities_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_authorities_extension().spec_serialize(v@)) }, { let combinator = certificate_authorities_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_authorities_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2034,7 +2034,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ResponderIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ResponderIdCombinatorAlias = Opaque1FfffCombinator; @@ -2078,14 +2078,14 @@ pub fn serialize_responder_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_responder_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_responder_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_responder_id().spec_serialize(v@)) }, { let combinator = responder_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn responder_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2226,7 +2226,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ResponderIdListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ResponderIdListCombinatorAlias = Mapped>, ResponderIdListCont0>, ResponderIdListMapper>; @@ -2293,14 +2293,14 @@ pub fn serialize_responder_id_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_responder_id_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_responder_id_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_responder_id_list().spec_serialize(v@)) }, { let combinator = responder_id_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn responder_id_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2479,7 +2479,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OscpStatusRequestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OscpStatusRequestCombinatorAlias = Mapped; @@ -2531,14 +2531,14 @@ pub fn serialize_oscp_status_request<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_oscp_status_request().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_oscp_status_request().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_oscp_status_request().spec_serialize(v@)) }, { let combinator = oscp_status_request(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn oscp_status_request_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2687,7 +2687,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateStatusRequestCombinato fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateStatusRequestCombinatorAlias = Mapped; @@ -2739,14 +2739,14 @@ pub fn serialize_certificate_status_request<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_status_request().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_status_request().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_status_request().spec_serialize(v@)) }, { let combinator = certificate_status_request(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_status_request_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2813,7 +2813,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SerializedSctCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SerializedSctCombinatorAlias = Opaque1FfffCombinator; @@ -2857,14 +2857,14 @@ pub fn serialize_serialized_sct<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_serialized_sct().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_serialized_sct().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_serialized_sct().spec_serialize(v@)) }, { let combinator = serialized_sct(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn serialized_sct_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3025,7 +3025,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SignedCertificateTimestampListCom fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SignedCertificateTimestampListCombinatorAlias = Mapped, AndThen>, SignedCertificateTimestampListCont0>, SignedCertificateTimestampListMapper>; @@ -3092,14 +3092,14 @@ pub fn serialize_signed_certificate_timestamp_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_signed_certificate_timestamp_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_signed_certificate_timestamp_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_signed_certificate_timestamp_list().spec_serialize(v@)) }, { let combinator = signed_certificate_timestamp_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn signed_certificate_timestamp_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3291,7 +3291,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Opaque1FfCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Opaque1FfCombinatorAlias = Mapped, bytes::Variable, Opaque1FfCont0>, Opaque1FfMapper>; @@ -3358,14 +3358,14 @@ pub fn serialize_opaque_1_ff<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_opaque_1_ff().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_opaque_1_ff().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_opaque_1_ff().spec_serialize(v@)) }, { let combinator = opaque_1_ff(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn opaque_1_ff_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3544,7 +3544,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OidFilterCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OidFilterCombinatorAlias = Mapped; @@ -3596,14 +3596,14 @@ pub fn serialize_oid_filter<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_oid_filter().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_oid_filter().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_oid_filter().spec_serialize(v@)) }, { let combinator = oid_filter(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn oid_filter_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3744,7 +3744,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OidFilterExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OidFilterExtensionCombinatorAlias = Mapped>, OidFilterExtensionCont0>, OidFilterExtensionMapper>; @@ -3811,14 +3811,14 @@ pub fn serialize_oid_filter_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_oid_filter_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_oid_filter_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_oid_filter_extension().spec_serialize(v@)) }, { let combinator = oid_filter_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn oid_filter_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4098,7 +4098,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateRequestExtensionExtens fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateRequestExtensionExtensionDataCombinatorAlias = AndThen>; @@ -4148,14 +4148,14 @@ pub fn serialize_certificate_request_extension_extension_data<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_request_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_request_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_request_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) }, { let combinator = certificate_request_extension_extension_data( ext_len, extension_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn certificate_request_extension_extension_data_len<'a>(v: >>::SType, ext_len: u16, extension_type: u16) -> (serialize_len: usize) @@ -4300,7 +4300,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateRequestExtensionCombin fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateRequestExtensionCombinatorAlias = Mapped, CertificateRequestExtensionExtensionDataCombinator, CertificateRequestExtensionCont0>, CertificateRequestExtensionMapper>; @@ -4382,14 +4382,14 @@ pub fn serialize_certificate_request_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_request_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_request_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_request_extension().spec_serialize(v@)) }, { let combinator = certificate_request_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_request_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4522,7 +4522,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NameTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NameTypeCombinatorAlias = U8; @@ -4566,14 +4566,14 @@ pub fn serialize_name_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_name_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_name_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_name_type().spec_serialize(v@)) }, { let combinator = name_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn name_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4734,7 +4734,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SessionIdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SessionIdCombinatorAlias = Mapped, bytes::Variable, SessionIdCont0>, SessionIdMapper>; @@ -4801,14 +4801,14 @@ pub fn serialize_session_id<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_session_id().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_session_id().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_session_id().spec_serialize(v@)) }, { let combinator = session_id(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn session_id_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4916,7 +4916,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CipherSuiteCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CipherSuiteCombinatorAlias = U16Be; @@ -4960,14 +4960,14 @@ pub fn serialize_cipher_suite<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cipher_suite().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cipher_suite().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cipher_suite().spec_serialize(v@)) }, { let combinator = cipher_suite(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn cipher_suite_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5044,7 +5044,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProtocolVersionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProtocolVersionCombinatorAlias = U16Be; @@ -5088,14 +5088,14 @@ pub fn serialize_protocol_version<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_protocol_version().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_protocol_version().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_protocol_version().spec_serialize(v@)) }, { let combinator = protocol_version(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn protocol_version_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5159,7 +5159,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SupportedVersionsServerCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SupportedVersionsServerCombinatorAlias = ProtocolVersionCombinator; @@ -5203,14 +5203,14 @@ pub fn serialize_supported_versions_server<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_supported_versions_server().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_supported_versions_server().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_supported_versions_server().spec_serialize(v@)) }, { let combinator = supported_versions_server(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn supported_versions_server_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5277,7 +5277,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CookieCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CookieCombinatorAlias = Opaque1FfffCombinator; @@ -5321,14 +5321,14 @@ pub fn serialize_cookie<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cookie().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cookie().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cookie().spec_serialize(v@)) }, { let combinator = cookie(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn cookie_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5459,7 +5459,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NamedGroupCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NamedGroupCombinatorAlias = U16Be; @@ -5503,14 +5503,14 @@ pub fn serialize_named_group<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_named_group().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_named_group().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_named_group().spec_serialize(v@)) }, { let combinator = named_group(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn named_group_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5711,76 +5711,76 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HelloRetryExtensionExtensionDataC fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HelloRetryExtensionExtensionDataCombinatorAlias = AndThen>; -pub open spec fn spec_hello_retry_extension_extension_data(extension_type: u16, ext_len: u16) -> SpecHelloRetryExtensionExtensionDataCombinator { +pub open spec fn spec_hello_retry_extension_extension_data(ext_len: u16, extension_type: u16) -> SpecHelloRetryExtensionExtensionDataCombinator { SpecHelloRetryExtensionExtensionDataCombinator(AndThen(bytes::Variable((usize::spec_from(ext_len)) as usize), Mapped { inner: Choice(Cond { cond: extension_type == ExtensionType::SPEC_SupportedVersions, inner: spec_supported_versions_server() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_Cookie, inner: spec_cookie() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_KeyShare, inner: spec_named_group() }, Cond { cond: !(extension_type == ExtensionType::SPEC_SupportedVersions || extension_type == ExtensionType::SPEC_Cookie || extension_type == ExtensionType::SPEC_KeyShare), inner: bytes::Variable((usize::spec_from(ext_len)) as usize) }))), mapper: HelloRetryExtensionExtensionDataMapper })) } -pub fn hello_retry_extension_extension_data<'a>(extension_type: u16, ext_len: u16) -> (o: HelloRetryExtensionExtensionDataCombinator) +pub fn hello_retry_extension_extension_data<'a>(ext_len: u16, extension_type: u16) -> (o: HelloRetryExtensionExtensionDataCombinator) requires spec_extension_type().wf(extension_type@), - ensures o@ == spec_hello_retry_extension_extension_data(extension_type@, ext_len@), + ensures o@ == spec_hello_retry_extension_extension_data(ext_len@, extension_type@), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { let combinator = HelloRetryExtensionExtensionDataCombinator(AndThen(bytes::Variable((usize::ex_from(ext_len)) as usize), Mapped { inner: HelloRetryExtensionExtensionDataCombinator3(Choice::new(Cond { cond: extension_type == ExtensionType::SupportedVersions, inner: supported_versions_server() }, HelloRetryExtensionExtensionDataCombinator2(Choice::new(Cond { cond: extension_type == ExtensionType::Cookie, inner: cookie() }, HelloRetryExtensionExtensionDataCombinator1(Choice::new(Cond { cond: extension_type == ExtensionType::KeyShare, inner: named_group() }, Cond { cond: !(extension_type == ExtensionType::SupportedVersions || extension_type == ExtensionType::Cookie || extension_type == ExtensionType::KeyShare), inner: bytes::Variable((usize::ex_from(ext_len)) as usize) })))))), mapper: HelloRetryExtensionExtensionDataMapper })); // assert({ - // &&& combinator@ == spec_hello_retry_extension_extension_data(extension_type@, ext_len@) + // &&& combinator@ == spec_hello_retry_extension_extension_data(ext_len@, extension_type@) // &&& combinator@.requires() // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) // }); combinator } -pub fn parse_hello_retry_extension_extension_data<'a>(input: &'a [u8], extension_type: u16, ext_len: u16) -> (res: PResult<>>::Type, ParseError>) +pub fn parse_hello_retry_extension_extension_data<'a>(input: &'a [u8], ext_len: u16, extension_type: u16) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, spec_extension_type().wf(extension_type@), ensures - res matches Ok((n, v)) ==> spec_hello_retry_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) == Some((n as int, v@)), - spec_hello_retry_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) matches Some((n, v)) + res matches Ok((n, v)) ==> spec_hello_retry_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) == Some((n as int, v@)), + spec_hello_retry_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) matches Some((n, v)) ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_hello_retry_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) is None, - spec_hello_retry_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) is None ==> res is Err, + res is Err ==> spec_hello_retry_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) is None, + spec_hello_retry_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) is None ==> res is Err, { - let combinator = hello_retry_extension_extension_data( extension_type, ext_len ); + let combinator = hello_retry_extension_extension_data( ext_len, extension_type ); <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) } -pub fn serialize_hello_retry_extension_extension_data<'a>(v: >>::SType, data: &mut Vec, pos: usize, extension_type: u16, ext_len: u16) -> (o: SResult) +pub fn serialize_hello_retry_extension_extension_data<'a>(v: >>::SType, data: &mut Vec, pos: usize, ext_len: u16, extension_type: u16) -> (o: SResult) requires pos <= old(data)@.len() <= usize::MAX, - spec_hello_retry_extension_extension_data(extension_type@, ext_len@).wf(v@), + spec_hello_retry_extension_extension_data(ext_len@, extension_type@).wf(v@), spec_extension_type().wf(extension_type@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_hello_retry_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_hello_retry_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@)) + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_hello_retry_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_hello_retry_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) }, { - let combinator = hello_retry_extension_extension_data( extension_type, ext_len ); - combinator.serialize(v, data, pos) + let combinator = hello_retry_extension_extension_data( ext_len, extension_type ); + combinator.serialize(v, &mut *data, pos) } -pub fn hello_retry_extension_extension_data_len<'a>(v: >>::SType, extension_type: u16, ext_len: u16) -> (serialize_len: usize) +pub fn hello_retry_extension_extension_data_len<'a>(v: >>::SType, ext_len: u16, extension_type: u16) -> (serialize_len: usize) requires - spec_hello_retry_extension_extension_data(extension_type@, ext_len@).wf(v@), - spec_hello_retry_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len() <= usize::MAX, + spec_hello_retry_extension_extension_data(ext_len@, extension_type@).wf(v@), + spec_hello_retry_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() <= usize::MAX, spec_extension_type().wf(extension_type@), ensures - serialize_len == spec_hello_retry_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len(), + serialize_len == spec_hello_retry_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len(), { - let combinator = hello_retry_extension_extension_data( extension_type, ext_len ); + let combinator = hello_retry_extension_extension_data( ext_len, extension_type ); <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) } @@ -5913,7 +5913,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HelloRetryExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HelloRetryExtensionCombinatorAlias = Mapped, HelloRetryExtensionExtensionDataCombinator, HelloRetryExtensionCont0>, HelloRetryExtensionMapper>; @@ -5943,7 +5943,7 @@ impl View for HelloRetryExtensionCont1 { pub open spec fn spec_hello_retry_extension_cont0(deps: (u16, u16)) -> SpecHelloRetryExtensionExtensionDataCombinator { let (extension_type, ext_len) = deps; - spec_hello_retry_extension_extension_data(extension_type, ext_len) + spec_hello_retry_extension_extension_data(ext_len, extension_type) } impl View for HelloRetryExtensionCont0 { @@ -5995,14 +5995,14 @@ pub fn serialize_hello_retry_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_hello_retry_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_hello_retry_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_hello_retry_extension().spec_serialize(v@)) }, { let combinator = hello_retry_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn hello_retry_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6069,13 +6069,13 @@ impl<'a, 'b, 'x> Continuation> for Hel let (extension_type, ext_len) = deps; let extension_type = *extension_type; let ext_len = *ext_len; - hello_retry_extension_extension_data(extension_type, ext_len) + hello_retry_extension_extension_data(ext_len, extension_type) } POrSType::S(deps) => { let (extension_type, ext_len) = deps; let extension_type = *extension_type; let ext_len = *ext_len; - hello_retry_extension_extension_data(extension_type, ext_len) + hello_retry_extension_extension_data(ext_len, extension_type) } } } @@ -6227,7 +6227,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HelloRetryExtensionsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HelloRetryExtensionsCombinatorAlias = Mapped, AndThen>, HelloRetryExtensionsCont0>, HelloRetryExtensionsMapper>; @@ -6294,14 +6294,14 @@ pub fn serialize_hello_retry_extensions<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_hello_retry_extensions().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_hello_retry_extensions().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_hello_retry_extensions().spec_serialize(v@)) }, { let combinator = hello_retry_extensions(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn hello_retry_extensions_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6505,7 +6505,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HelloRetryRequestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HelloRetryRequestCombinatorAlias = Mapped; @@ -6557,14 +6557,14 @@ pub fn serialize_hello_retry_request<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_hello_retry_request().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_hello_retry_request().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_hello_retry_request().spec_serialize(v@)) }, { let combinator = hello_retry_request(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn hello_retry_request_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6702,7 +6702,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PreSharedKeyServerExtensionCombin fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PreSharedKeyServerExtensionCombinatorAlias = Mapped; @@ -6754,14 +6754,14 @@ pub fn serialize_pre_shared_key_server_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_pre_shared_key_server_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_pre_shared_key_server_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_pre_shared_key_server_extension().spec_serialize(v@)) }, { let combinator = pre_shared_key_server_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn pre_shared_key_server_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6905,7 +6905,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for KeyShareEntryCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type KeyShareEntryCombinatorAlias = Mapped, KeyShareEntryCont1>, bytes::Variable, KeyShareEntryCont0>, KeyShareEntryMapper>; @@ -6987,14 +6987,14 @@ pub fn serialize_key_share_entry<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_key_share_entry().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_key_share_entry().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_key_share_entry().spec_serialize(v@)) }, { let combinator = key_share_entry(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn key_share_entry_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7259,7 +7259,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SeverHelloExtensionExtensionDataC fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SeverHelloExtensionExtensionDataCombinatorAlias = AndThen>; @@ -7309,14 +7309,14 @@ pub fn serialize_sever_hello_extension_extension_data<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_sever_hello_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_sever_hello_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_sever_hello_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) }, { let combinator = sever_hello_extension_extension_data( ext_len, extension_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn sever_hello_extension_extension_data_len<'a>(v: >>::SType, ext_len: u16, extension_type: u16) -> (serialize_len: usize) @@ -7461,7 +7461,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SeverHelloExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SeverHelloExtensionCombinatorAlias = Mapped, SeverHelloExtensionExtensionDataCombinator, SeverHelloExtensionCont0>, SeverHelloExtensionMapper>; @@ -7543,14 +7543,14 @@ pub fn serialize_sever_hello_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_sever_hello_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_sever_hello_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_sever_hello_extension().spec_serialize(v@)) }, { let combinator = sever_hello_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn sever_hello_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7755,7 +7755,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ServerExtensionsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ServerExtensionsCombinatorAlias = Mapped, AndThen>, ServerExtensionsCont0>, ServerExtensionsMapper>; @@ -7822,14 +7822,14 @@ pub fn serialize_server_extensions<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_server_extensions().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_server_extensions().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_server_extensions().spec_serialize(v@)) }, { let combinator = server_extensions(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn server_extensions_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8033,7 +8033,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ServerHelloCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ServerHelloCombinatorAlias = Mapped; @@ -8085,14 +8085,14 @@ pub fn serialize_server_hello<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_server_hello().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_server_hello().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_server_hello().spec_serialize(v@)) }, { let combinator = server_hello(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn server_hello_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8261,7 +8261,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ShOrHrrPayloadCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ShOrHrrPayloadCombinatorAlias = Mapped; @@ -8307,14 +8307,14 @@ pub fn serialize_sh_or_hrr_payload<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_sh_or_hrr_payload(random@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_sh_or_hrr_payload(random@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_sh_or_hrr_payload(random@).spec_serialize(v@)) }, { let combinator = sh_or_hrr_payload( random ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn sh_or_hrr_payload_len<'a>(v: >>::SType, random: &'a [u8]) -> (serialize_len: usize) @@ -8459,7 +8459,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ShOrHrrCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ShOrHrrCombinatorAlias = Mapped>, bytes::Fixed<32>), ShOrHrrPayloadCombinator, ShOrHrrCont0>, ShOrHrrMapper>; @@ -8526,14 +8526,14 @@ pub fn serialize_sh_or_hrr<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_sh_or_hrr().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_sh_or_hrr().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_sh_or_hrr().spec_serialize(v@)) }, { let combinator = sh_or_hrr(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn sh_or_hrr_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8793,7 +8793,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HandshakeTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HandshakeTypeCombinatorAlias = TryMap; @@ -8837,14 +8837,14 @@ pub fn serialize_handshake_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_handshake_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_handshake_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_handshake_type().spec_serialize(v@)) }, { let combinator = handshake_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn handshake_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8985,7 +8985,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CipherSuiteListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CipherSuiteListCombinatorAlias = Mapped, AndThen>, CipherSuiteListCont0>, CipherSuiteListMapper>; @@ -9052,14 +9052,14 @@ pub fn serialize_cipher_suite_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_cipher_suite_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_cipher_suite_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_cipher_suite_list().spec_serialize(v@)) }, { let combinator = cipher_suite_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn cipher_suite_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9157,7 +9157,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HostNameCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HostNameCombinatorAlias = Opaque1FfffCombinator; @@ -9201,14 +9201,14 @@ pub fn serialize_host_name<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_host_name().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_host_name().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_host_name().spec_serialize(v@)) }, { let combinator = host_name(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn host_name_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9275,7 +9275,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for UnknownNameCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type UnknownNameCombinatorAlias = Opaque1FfffCombinator; @@ -9319,14 +9319,14 @@ pub fn serialize_unknown_name<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_unknown_name().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_unknown_name().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_unknown_name().spec_serialize(v@)) }, { let combinator = unknown_name(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn unknown_name_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9495,7 +9495,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ServerNameNameCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ServerNameNameCombinatorAlias = Mapped; @@ -9545,14 +9545,14 @@ pub fn serialize_server_name_name<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_server_name_name(name_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_server_name_name(name_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_server_name_name(name_type@).spec_serialize(v@)) }, { let combinator = server_name_name( name_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn server_name_name_len<'a>(v: >>::SType, name_type: u8) -> (serialize_len: usize) @@ -9694,7 +9694,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ServerNameCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ServerNameCombinatorAlias = Mapped, ServerNameMapper>; @@ -9761,14 +9761,14 @@ pub fn serialize_server_name<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_server_name().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_server_name().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_server_name().spec_serialize(v@)) }, { let combinator = server_name(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn server_name_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9940,7 +9940,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ServerNameListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ServerNameListCombinatorAlias = Mapped, AndThen>, ServerNameListCont0>, ServerNameListMapper>; @@ -10007,14 +10007,14 @@ pub fn serialize_server_name_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_server_name_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_server_name_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_server_name_list().spec_serialize(v@)) }, { let combinator = server_name_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn server_name_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10206,7 +10206,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NamedGroupListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NamedGroupListCombinatorAlias = Mapped, AndThen>, NamedGroupListCont0>, NamedGroupListMapper>; @@ -10273,14 +10273,14 @@ pub fn serialize_named_group_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_named_group_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_named_group_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_named_group_list().spec_serialize(v@)) }, { let combinator = named_group_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn named_group_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10378,7 +10378,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProtocolNameCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProtocolNameCombinatorAlias = Opaque1FfCombinator; @@ -10422,14 +10422,14 @@ pub fn serialize_protocol_name<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_protocol_name().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_protocol_name().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_protocol_name().spec_serialize(v@)) }, { let combinator = protocol_name(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn protocol_name_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10570,7 +10570,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ProtocolNameListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ProtocolNameListCombinatorAlias = Mapped, AndThen>, ProtocolNameListCont0>, ProtocolNameListMapper>; @@ -10637,14 +10637,14 @@ pub fn serialize_protocol_name_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_protocol_name_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_protocol_name_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_protocol_name_list().spec_serialize(v@)) }, { let combinator = protocol_name_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn protocol_name_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10836,7 +10836,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SupportedVersionsClientCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SupportedVersionsClientCombinatorAlias = Mapped, AndThen>, SupportedVersionsClientCont0>, SupportedVersionsClientMapper>; @@ -10903,14 +10903,14 @@ pub fn serialize_supported_versions_client<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_supported_versions_client().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_supported_versions_client().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_supported_versions_client().spec_serialize(v@)) }, { let combinator = supported_versions_client(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn supported_versions_client_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11082,7 +11082,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for KeyShareClientHelloCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type KeyShareClientHelloCombinatorAlias = Mapped>, KeyShareClientHelloCont0>, KeyShareClientHelloMapper>; @@ -11149,14 +11149,14 @@ pub fn serialize_key_share_client_hello<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_key_share_client_hello().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_key_share_client_hello().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_key_share_client_hello().spec_serialize(v@)) }, { let combinator = key_share_client_hello(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn key_share_client_hello_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11258,7 +11258,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PskKeyExchangeModeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PskKeyExchangeModeCombinatorAlias = U8; @@ -11302,14 +11302,14 @@ pub fn serialize_psk_key_exchange_mode<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_psk_key_exchange_mode().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_psk_key_exchange_mode().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_psk_key_exchange_mode().spec_serialize(v@)) }, { let combinator = psk_key_exchange_mode(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn psk_key_exchange_mode_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11470,7 +11470,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PskKeyExchangeModesCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PskKeyExchangeModesCombinatorAlias = Mapped, AndThen>, PskKeyExchangeModesCont0>, PskKeyExchangeModesMapper>; @@ -11537,14 +11537,14 @@ pub fn serialize_psk_key_exchange_modes<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_psk_key_exchange_modes().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_psk_key_exchange_modes().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_psk_key_exchange_modes().spec_serialize(v@)) }, { let combinator = psk_key_exchange_modes(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn psk_key_exchange_modes_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11723,7 +11723,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PskIdentityCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PskIdentityCombinatorAlias = Mapped; @@ -11775,14 +11775,14 @@ pub fn serialize_psk_identity<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_psk_identity().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_psk_identity().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_psk_identity().spec_serialize(v@)) }, { let combinator = psk_identity(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn psk_identity_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11943,7 +11943,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PskIdentitiesCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PskIdentitiesCombinatorAlias = Mapped, AndThen>, PskIdentitiesCont0>, PskIdentitiesMapper>; @@ -12010,14 +12010,14 @@ pub fn serialize_psk_identities<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_psk_identities().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_psk_identities().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_psk_identities().spec_serialize(v@)) }, { let combinator = psk_identities(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn psk_identities_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12209,7 +12209,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PskBinderEntryCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PskBinderEntryCombinatorAlias = Mapped, bytes::Variable, PskBinderEntryCont0>, PskBinderEntryMapper>; @@ -12276,14 +12276,14 @@ pub fn serialize_psk_binder_entry<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_psk_binder_entry().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_psk_binder_entry().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_psk_binder_entry().spec_serialize(v@)) }, { let combinator = psk_binder_entry(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn psk_binder_entry_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12475,7 +12475,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PskBinderEntriesCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PskBinderEntriesCombinatorAlias = Mapped, AndThen>, PskBinderEntriesCont0>, PskBinderEntriesMapper>; @@ -12542,14 +12542,14 @@ pub fn serialize_psk_binder_entries<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_psk_binder_entries().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_psk_binder_entries().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_psk_binder_entries().spec_serialize(v@)) }, { let combinator = psk_binder_entries(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn psk_binder_entries_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12728,7 +12728,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OfferedPsksCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OfferedPsksCombinatorAlias = Mapped; @@ -12780,14 +12780,14 @@ pub fn serialize_offered_psks<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_offered_psks().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_offered_psks().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_offered_psks().spec_serialize(v@)) }, { let combinator = offered_psks(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn offered_psks_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12925,7 +12925,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PreSharedKeyClientExtensionCombin fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PreSharedKeyClientExtensionCombinatorAlias = Mapped; @@ -12977,14 +12977,14 @@ pub fn serialize_pre_shared_key_client_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_pre_shared_key_client_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_pre_shared_key_client_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_pre_shared_key_client_extension().spec_serialize(v@)) }, { let combinator = pre_shared_key_client_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn pre_shared_key_client_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13059,7 +13059,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MaxFragmentLengthCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MaxFragmentLengthCombinatorAlias = U8; @@ -13103,14 +13103,14 @@ pub fn serialize_max_fragment_length<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_max_fragment_length().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_max_fragment_length().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_max_fragment_length().spec_serialize(v@)) }, { let combinator = max_fragment_length(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn max_fragment_length_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13181,7 +13181,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HeartbeatModeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HeartbeatModeCombinatorAlias = U8; @@ -13225,14 +13225,14 @@ pub fn serialize_heartbeat_mode<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_heartbeat_mode().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_heartbeat_mode().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_heartbeat_mode().spec_serialize(v@)) }, { let combinator = heartbeat_mode(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn heartbeat_mode_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13303,7 +13303,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateTypeCombinatorAlias = U8; @@ -13347,14 +13347,14 @@ pub fn serialize_certificate_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_type().spec_serialize(v@)) }, { let combinator = certificate_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13495,7 +13495,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ClientCertTypeClientExtensionComb fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ClientCertTypeClientExtensionCombinatorAlias = Mapped, AndThen>, ClientCertTypeClientExtensionCont0>, ClientCertTypeClientExtensionMapper>; @@ -13562,14 +13562,14 @@ pub fn serialize_client_cert_type_client_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_client_cert_type_client_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_client_cert_type_client_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_client_cert_type_client_extension().spec_serialize(v@)) }, { let combinator = client_cert_type_client_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn client_cert_type_client_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13741,7 +13741,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ServerCertTypeClientExtensionComb fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ServerCertTypeClientExtensionCombinatorAlias = Mapped, AndThen>, ServerCertTypeClientExtensionCont0>, ServerCertTypeClientExtensionMapper>; @@ -13808,14 +13808,14 @@ pub fn serialize_server_cert_type_client_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_server_cert_type_client_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_server_cert_type_client_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_server_cert_type_client_extension().spec_serialize(v@)) }, { let combinator = server_cert_type_client_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn server_cert_type_client_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -14159,7 +14159,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ClientHelloExtensionRestCombinato fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ClientHelloExtensionRestCombinatorAlias = Mapped; @@ -14209,14 +14209,14 @@ pub fn serialize_client_hello_extension_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_client_hello_extension_rest(ext_len@, extension_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_client_hello_extension_rest(ext_len@, extension_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_client_hello_extension_rest(ext_len@, extension_type@).spec_serialize(v@)) }, { let combinator = client_hello_extension_rest( ext_len, extension_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn client_hello_extension_rest_len<'a>(v: >>::SType, ext_len: u16, extension_type: u16) -> (serialize_len: usize) @@ -14514,76 +14514,76 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ClientHelloExtensionExtensionData fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ClientHelloExtensionExtensionDataCombinatorAlias = AndThen>; -pub open spec fn spec_client_hello_extension_extension_data(extension_type: u16, ext_len: u16) -> SpecClientHelloExtensionExtensionDataCombinator { +pub open spec fn spec_client_hello_extension_extension_data(ext_len: u16, extension_type: u16) -> SpecClientHelloExtensionExtensionDataCombinator { SpecClientHelloExtensionExtensionDataCombinator(AndThen(bytes::Variable((usize::spec_from(ext_len)) as usize), Mapped { inner: Choice(Cond { cond: extension_type == ExtensionType::SPEC_ServerName, inner: spec_server_name_list() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_SignatureAlgorithms, inner: spec_signature_scheme_list() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_SupportedGroups, inner: spec_named_group_list() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_StatusRequest, inner: spec_certificate_status_request() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_ApplicationLayerProtocolNegotiation, inner: spec_protocol_name_list() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_SupportedVersions, inner: spec_supported_versions_client() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_KeyShare, inner: spec_key_share_client_hello() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_PskKeyExchangeModes, inner: spec_psk_key_exchange_modes() }, Choice(Cond { cond: extension_type == ExtensionType::SPEC_PreSharedKey, inner: spec_pre_shared_key_client_extension() }, Cond { cond: !(extension_type == ExtensionType::SPEC_ServerName || extension_type == ExtensionType::SPEC_SignatureAlgorithms || extension_type == ExtensionType::SPEC_SupportedGroups || extension_type == ExtensionType::SPEC_StatusRequest || extension_type == ExtensionType::SPEC_ApplicationLayerProtocolNegotiation || extension_type == ExtensionType::SPEC_SupportedVersions || extension_type == ExtensionType::SPEC_KeyShare || extension_type == ExtensionType::SPEC_PskKeyExchangeModes || extension_type == ExtensionType::SPEC_PreSharedKey), inner: spec_client_hello_extension_rest(ext_len, extension_type) }))))))))), mapper: ClientHelloExtensionExtensionDataMapper })) } -pub fn client_hello_extension_extension_data<'a>(extension_type: u16, ext_len: u16) -> (o: ClientHelloExtensionExtensionDataCombinator) +pub fn client_hello_extension_extension_data<'a>(ext_len: u16, extension_type: u16) -> (o: ClientHelloExtensionExtensionDataCombinator) requires spec_extension_type().wf(extension_type@), - ensures o@ == spec_client_hello_extension_extension_data(extension_type@, ext_len@), + ensures o@ == spec_client_hello_extension_extension_data(ext_len@, extension_type@), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { let combinator = ClientHelloExtensionExtensionDataCombinator(AndThen(bytes::Variable((usize::ex_from(ext_len)) as usize), Mapped { inner: ClientHelloExtensionExtensionDataCombinator9(Choice::new(Cond { cond: extension_type == ExtensionType::ServerName, inner: server_name_list() }, ClientHelloExtensionExtensionDataCombinator8(Choice::new(Cond { cond: extension_type == ExtensionType::SignatureAlgorithms, inner: signature_scheme_list() }, ClientHelloExtensionExtensionDataCombinator7(Choice::new(Cond { cond: extension_type == ExtensionType::SupportedGroups, inner: named_group_list() }, ClientHelloExtensionExtensionDataCombinator6(Choice::new(Cond { cond: extension_type == ExtensionType::StatusRequest, inner: certificate_status_request() }, ClientHelloExtensionExtensionDataCombinator5(Choice::new(Cond { cond: extension_type == ExtensionType::ApplicationLayerProtocolNegotiation, inner: protocol_name_list() }, ClientHelloExtensionExtensionDataCombinator4(Choice::new(Cond { cond: extension_type == ExtensionType::SupportedVersions, inner: supported_versions_client() }, ClientHelloExtensionExtensionDataCombinator3(Choice::new(Cond { cond: extension_type == ExtensionType::KeyShare, inner: key_share_client_hello() }, ClientHelloExtensionExtensionDataCombinator2(Choice::new(Cond { cond: extension_type == ExtensionType::PskKeyExchangeModes, inner: psk_key_exchange_modes() }, ClientHelloExtensionExtensionDataCombinator1(Choice::new(Cond { cond: extension_type == ExtensionType::PreSharedKey, inner: pre_shared_key_client_extension() }, Cond { cond: !(extension_type == ExtensionType::ServerName || extension_type == ExtensionType::SignatureAlgorithms || extension_type == ExtensionType::SupportedGroups || extension_type == ExtensionType::StatusRequest || extension_type == ExtensionType::ApplicationLayerProtocolNegotiation || extension_type == ExtensionType::SupportedVersions || extension_type == ExtensionType::KeyShare || extension_type == ExtensionType::PskKeyExchangeModes || extension_type == ExtensionType::PreSharedKey), inner: client_hello_extension_rest(ext_len, extension_type) })))))))))))))))))), mapper: ClientHelloExtensionExtensionDataMapper })); // assert({ - // &&& combinator@ == spec_client_hello_extension_extension_data(extension_type@, ext_len@) + // &&& combinator@ == spec_client_hello_extension_extension_data(ext_len@, extension_type@) // &&& combinator@.requires() // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) // }); combinator } -pub fn parse_client_hello_extension_extension_data<'a>(input: &'a [u8], extension_type: u16, ext_len: u16) -> (res: PResult<>>::Type, ParseError>) +pub fn parse_client_hello_extension_extension_data<'a>(input: &'a [u8], ext_len: u16, extension_type: u16) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, spec_extension_type().wf(extension_type@), ensures - res matches Ok((n, v)) ==> spec_client_hello_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) == Some((n as int, v@)), - spec_client_hello_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) matches Some((n, v)) + res matches Ok((n, v)) ==> spec_client_hello_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) == Some((n as int, v@)), + spec_client_hello_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) matches Some((n, v)) ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_client_hello_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) is None, - spec_client_hello_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) is None ==> res is Err, + res is Err ==> spec_client_hello_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) is None, + spec_client_hello_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) is None ==> res is Err, { - let combinator = client_hello_extension_extension_data( extension_type, ext_len ); + let combinator = client_hello_extension_extension_data( ext_len, extension_type ); <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) } -pub fn serialize_client_hello_extension_extension_data<'a>(v: >>::SType, data: &mut Vec, pos: usize, extension_type: u16, ext_len: u16) -> (o: SResult) +pub fn serialize_client_hello_extension_extension_data<'a>(v: >>::SType, data: &mut Vec, pos: usize, ext_len: u16, extension_type: u16) -> (o: SResult) requires pos <= old(data)@.len() <= usize::MAX, - spec_client_hello_extension_extension_data(extension_type@, ext_len@).wf(v@), + spec_client_hello_extension_extension_data(ext_len@, extension_type@).wf(v@), spec_extension_type().wf(extension_type@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_client_hello_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_client_hello_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@)) + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_client_hello_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_client_hello_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) }, { - let combinator = client_hello_extension_extension_data( extension_type, ext_len ); - combinator.serialize(v, data, pos) + let combinator = client_hello_extension_extension_data( ext_len, extension_type ); + combinator.serialize(v, &mut *data, pos) } -pub fn client_hello_extension_extension_data_len<'a>(v: >>::SType, extension_type: u16, ext_len: u16) -> (serialize_len: usize) +pub fn client_hello_extension_extension_data_len<'a>(v: >>::SType, ext_len: u16, extension_type: u16) -> (serialize_len: usize) requires - spec_client_hello_extension_extension_data(extension_type@, ext_len@).wf(v@), - spec_client_hello_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len() <= usize::MAX, + spec_client_hello_extension_extension_data(ext_len@, extension_type@).wf(v@), + spec_client_hello_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() <= usize::MAX, spec_extension_type().wf(extension_type@), ensures - serialize_len == spec_client_hello_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len(), + serialize_len == spec_client_hello_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len(), { - let combinator = client_hello_extension_extension_data( extension_type, ext_len ); + let combinator = client_hello_extension_extension_data( ext_len, extension_type ); <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) } @@ -14716,7 +14716,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ClientHelloExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ClientHelloExtensionCombinatorAlias = Mapped, ClientHelloExtensionExtensionDataCombinator, ClientHelloExtensionCont0>, ClientHelloExtensionMapper>; @@ -14746,7 +14746,7 @@ impl View for ClientHelloExtensionCont1 { pub open spec fn spec_client_hello_extension_cont0(deps: (u16, u16)) -> SpecClientHelloExtensionExtensionDataCombinator { let (extension_type, ext_len) = deps; - spec_client_hello_extension_extension_data(extension_type, ext_len) + spec_client_hello_extension_extension_data(ext_len, extension_type) } impl View for ClientHelloExtensionCont0 { @@ -14798,14 +14798,14 @@ pub fn serialize_client_hello_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_client_hello_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_client_hello_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_client_hello_extension().spec_serialize(v@)) }, { let combinator = client_hello_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn client_hello_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -14872,13 +14872,13 @@ impl<'a, 'b, 'x> Continuation> for Cl let (extension_type, ext_len) = deps; let extension_type = *extension_type; let ext_len = *ext_len; - client_hello_extension_extension_data(extension_type, ext_len) + client_hello_extension_extension_data(ext_len, extension_type) } POrSType::S(deps) => { let (extension_type, ext_len) = deps; let extension_type = *extension_type; let ext_len = *ext_len; - client_hello_extension_extension_data(extension_type, ext_len) + client_hello_extension_extension_data(ext_len, extension_type) } } } @@ -15030,7 +15030,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ClientExtensionsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ClientExtensionsCombinatorAlias = Mapped, AndThen>, ClientExtensionsCont0>, ClientExtensionsMapper>; @@ -15097,14 +15097,14 @@ pub fn serialize_client_extensions<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_client_extensions().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_client_extensions().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_client_extensions().spec_serialize(v@)) }, { let combinator = client_extensions(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn client_extensions_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -15332,7 +15332,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ClientHelloCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ClientHelloCombinatorAlias = Mapped; @@ -15384,14 +15384,14 @@ pub fn serialize_client_hello<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_client_hello().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_client_hello().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_client_hello().spec_serialize(v@)) }, { let combinator = client_hello(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn client_hello_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -15532,7 +15532,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Opaque0FfCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Opaque0FfCombinatorAlias = Mapped, Opaque0FfMapper>; @@ -15599,14 +15599,14 @@ pub fn serialize_opaque_0_ff<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_opaque_0_ff().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_opaque_0_ff().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_opaque_0_ff().spec_serialize(v@)) }, { let combinator = opaque_0_ff(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn opaque_0_ff_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -15775,7 +15775,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EarlyDataIndicationNewSessionTick fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EarlyDataIndicationNewSessionTicketCombinatorAlias = Mapped; @@ -15827,14 +15827,14 @@ pub fn serialize_early_data_indication_new_session_ticket<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_early_data_indication_new_session_ticket().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_early_data_indication_new_session_ticket().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_early_data_indication_new_session_ticket().spec_serialize(v@)) }, { let combinator = early_data_indication_new_session_ticket(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn early_data_indication_new_session_ticket_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16003,76 +16003,76 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NewSessionTicketExtensionExtensio fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NewSessionTicketExtensionExtensionDataCombinatorAlias = AndThen>; -pub open spec fn spec_new_session_ticket_extension_extension_data(extension_type: u16, ext_len: u16) -> SpecNewSessionTicketExtensionExtensionDataCombinator { +pub open spec fn spec_new_session_ticket_extension_extension_data(ext_len: u16, extension_type: u16) -> SpecNewSessionTicketExtensionExtensionDataCombinator { SpecNewSessionTicketExtensionExtensionDataCombinator(AndThen(bytes::Variable((usize::spec_from(ext_len)) as usize), Mapped { inner: Choice(Cond { cond: extension_type == ExtensionType::SPEC_EarlyData, inner: spec_early_data_indication_new_session_ticket() }, Cond { cond: !(extension_type == ExtensionType::SPEC_EarlyData), inner: bytes::Variable((usize::spec_from(ext_len)) as usize) }), mapper: NewSessionTicketExtensionExtensionDataMapper })) } -pub fn new_session_ticket_extension_extension_data<'a>(extension_type: u16, ext_len: u16) -> (o: NewSessionTicketExtensionExtensionDataCombinator) +pub fn new_session_ticket_extension_extension_data<'a>(ext_len: u16, extension_type: u16) -> (o: NewSessionTicketExtensionExtensionDataCombinator) requires spec_extension_type().wf(extension_type@), - ensures o@ == spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@), + ensures o@ == spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@), o@.requires(), <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&o), { let combinator = NewSessionTicketExtensionExtensionDataCombinator(AndThen(bytes::Variable((usize::ex_from(ext_len)) as usize), Mapped { inner: NewSessionTicketExtensionExtensionDataCombinator1(Choice::new(Cond { cond: extension_type == ExtensionType::EarlyData, inner: early_data_indication_new_session_ticket() }, Cond { cond: !(extension_type == ExtensionType::EarlyData), inner: bytes::Variable((usize::ex_from(ext_len)) as usize) })), mapper: NewSessionTicketExtensionExtensionDataMapper })); // assert({ - // &&& combinator@ == spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@) + // &&& combinator@ == spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@) // &&& combinator@.requires() // &&& <_ as Combinator<'a, &'a [u8], Vec>>::ex_requires(&combinator) // }); combinator } -pub fn parse_new_session_ticket_extension_extension_data<'a>(input: &'a [u8], extension_type: u16, ext_len: u16) -> (res: PResult<>>::Type, ParseError>) +pub fn parse_new_session_ticket_extension_extension_data<'a>(input: &'a [u8], ext_len: u16, extension_type: u16) -> (res: PResult<>>::Type, ParseError>) requires input.len() <= usize::MAX, spec_extension_type().wf(extension_type@), ensures - res matches Ok((n, v)) ==> spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) == Some((n as int, v@)), - spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) matches Some((n, v)) + res matches Ok((n, v)) ==> spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) == Some((n as int, v@)), + spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) matches Some((n, v)) ==> res matches Ok((m, u)) && m == n && v == u@, - res is Err ==> spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) is None, - spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).spec_parse(input@) is None ==> res is Err, + res is Err ==> spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) is None, + spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).spec_parse(input@) is None ==> res is Err, { - let combinator = new_session_ticket_extension_extension_data( extension_type, ext_len ); + let combinator = new_session_ticket_extension_extension_data( ext_len, extension_type ); <_ as Combinator<'a, &'a [u8], Vec>>::parse(&combinator, input) } -pub fn serialize_new_session_ticket_extension_extension_data<'a>(v: >>::SType, data: &mut Vec, pos: usize, extension_type: u16, ext_len: u16) -> (o: SResult) +pub fn serialize_new_session_ticket_extension_extension_data<'a>(v: >>::SType, data: &mut Vec, pos: usize, ext_len: u16, extension_type: u16) -> (o: SResult) requires pos <= old(data)@.len() <= usize::MAX, - spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).wf(v@), + spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).wf(v@), spec_extension_type().wf(extension_type@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() - &&& n == spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@)) + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() + &&& n == spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() + &&& final(data)@ == seq_splice(old(data)@, pos, spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) }, { - let combinator = new_session_ticket_extension_extension_data( extension_type, ext_len ); - combinator.serialize(v, data, pos) + let combinator = new_session_ticket_extension_extension_data( ext_len, extension_type ); + combinator.serialize(v, &mut *data, pos) } -pub fn new_session_ticket_extension_extension_data_len<'a>(v: >>::SType, extension_type: u16, ext_len: u16) -> (serialize_len: usize) +pub fn new_session_ticket_extension_extension_data_len<'a>(v: >>::SType, ext_len: u16, extension_type: u16) -> (serialize_len: usize) requires - spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).wf(v@), - spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len() <= usize::MAX, + spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).wf(v@), + spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() <= usize::MAX, spec_extension_type().wf(extension_type@), ensures - serialize_len == spec_new_session_ticket_extension_extension_data(extension_type@, ext_len@).spec_serialize(v@).len(), + serialize_len == spec_new_session_ticket_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len(), { - let combinator = new_session_ticket_extension_extension_data( extension_type, ext_len ); + let combinator = new_session_ticket_extension_extension_data( ext_len, extension_type ); <_ as Combinator<'a, &'a [u8], Vec>>::length(&combinator, v) } @@ -16205,7 +16205,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NewSessionTicketExtensionCombinat fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NewSessionTicketExtensionCombinatorAlias = Mapped, NewSessionTicketExtensionExtensionDataCombinator, NewSessionTicketExtensionCont0>, NewSessionTicketExtensionMapper>; @@ -16235,7 +16235,7 @@ impl View for NewSessionTicketExtensionCont1 { pub open spec fn spec_new_session_ticket_extension_cont0(deps: (u16, u16)) -> SpecNewSessionTicketExtensionExtensionDataCombinator { let (extension_type, ext_len) = deps; - spec_new_session_ticket_extension_extension_data(extension_type, ext_len) + spec_new_session_ticket_extension_extension_data(ext_len, extension_type) } impl View for NewSessionTicketExtensionCont0 { @@ -16287,14 +16287,14 @@ pub fn serialize_new_session_ticket_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_new_session_ticket_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_new_session_ticket_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_new_session_ticket_extension().spec_serialize(v@)) }, { let combinator = new_session_ticket_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn new_session_ticket_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16361,13 +16361,13 @@ impl<'a, 'b, 'x> Continuation> f let (extension_type, ext_len) = deps; let extension_type = *extension_type; let ext_len = *ext_len; - new_session_ticket_extension_extension_data(extension_type, ext_len) + new_session_ticket_extension_extension_data(ext_len, extension_type) } POrSType::S(deps) => { let (extension_type, ext_len) = deps; let extension_type = *extension_type; let ext_len = *ext_len; - new_session_ticket_extension_extension_data(extension_type, ext_len) + new_session_ticket_extension_extension_data(ext_len, extension_type) } } } @@ -16519,7 +16519,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NewSessionTicketExtensionsCombina fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NewSessionTicketExtensionsCombinatorAlias = Mapped, AndThen>, NewSessionTicketExtensionsCont0>, NewSessionTicketExtensionsMapper>; @@ -16586,14 +16586,14 @@ pub fn serialize_new_session_ticket_extensions<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_new_session_ticket_extensions().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_new_session_ticket_extensions().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_new_session_ticket_extensions().spec_serialize(v@)) }, { let combinator = new_session_ticket_extensions(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn new_session_ticket_extensions_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16808,7 +16808,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NewSessionTicketCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NewSessionTicketCombinatorAlias = Mapped; @@ -16860,14 +16860,14 @@ pub fn serialize_new_session_ticket<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_new_session_ticket().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_new_session_ticket().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_new_session_ticket().spec_serialize(v@)) }, { let combinator = new_session_ticket(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn new_session_ticket_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17148,7 +17148,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EncryptedExtensionExtensionDataCo fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EncryptedExtensionExtensionDataCombinatorAlias = AndThen>; @@ -17198,14 +17198,14 @@ pub fn serialize_encrypted_extension_extension_data<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_encrypted_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_encrypted_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_encrypted_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) }, { let combinator = encrypted_extension_extension_data( ext_len, extension_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn encrypted_extension_extension_data_len<'a>(v: >>::SType, ext_len: u16, extension_type: u16) -> (serialize_len: usize) @@ -17350,7 +17350,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EncryptedExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EncryptedExtensionCombinatorAlias = Mapped, EncryptedExtensionExtensionDataCombinator, EncryptedExtensionCont0>, EncryptedExtensionMapper>; @@ -17432,14 +17432,14 @@ pub fn serialize_encrypted_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_encrypted_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_encrypted_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_encrypted_extension().spec_serialize(v@)) }, { let combinator = encrypted_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn encrypted_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17644,7 +17644,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EncryptedExtensionsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EncryptedExtensionsCombinatorAlias = Mapped>, EncryptedExtensionsCont0>, EncryptedExtensionsMapper>; @@ -17711,14 +17711,14 @@ pub fn serialize_encrypted_extensions<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_encrypted_extensions().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_encrypted_extensions().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_encrypted_extensions().spec_serialize(v@)) }, { let combinator = encrypted_extensions(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn encrypted_extensions_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17910,7 +17910,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Opaque1FfffffCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Opaque1FfffffCombinatorAlias = Mapped, bytes::Variable, Opaque1FfffffCont0>, Opaque1FfffffMapper>; @@ -17977,14 +17977,14 @@ pub fn serialize_opaque_1_ffffff<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_opaque_1_ffffff().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_opaque_1_ffffff().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_opaque_1_ffffff().spec_serialize(v@)) }, { let combinator = opaque_1_ffffff(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn opaque_1_ffffff_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -18082,7 +18082,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OcspResponseCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type OcspResponseCombinatorAlias = Opaque1FfffffCombinator; @@ -18126,14 +18126,14 @@ pub fn serialize_ocsp_response<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ocsp_response().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ocsp_response().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ocsp_response().spec_serialize(v@)) }, { let combinator = ocsp_response(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ocsp_response_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -18282,7 +18282,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateStatusCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateStatusCombinatorAlias = Mapped; @@ -18334,14 +18334,14 @@ pub fn serialize_certificate_status<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_status().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_status().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_status().spec_serialize(v@)) }, { let combinator = certificate_status(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_status_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -18526,7 +18526,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateExtensionExtensionData fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateExtensionExtensionDataCombinatorAlias = AndThen>; @@ -18576,14 +18576,14 @@ pub fn serialize_certificate_extension_extension_data<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_extension_extension_data(ext_len@, extension_type@).spec_serialize(v@)) }, { let combinator = certificate_extension_extension_data( ext_len, extension_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn certificate_extension_extension_data_len<'a>(v: >>::SType, ext_len: u16, extension_type: u16) -> (serialize_len: usize) @@ -18728,7 +18728,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateExtensionCombinatorAlias = Mapped, CertificateExtensionExtensionDataCombinator, CertificateExtensionCont0>, CertificateExtensionMapper>; @@ -18810,14 +18810,14 @@ pub fn serialize_certificate_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_extension().spec_serialize(v@)) }, { let combinator = certificate_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19022,7 +19022,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateExtensionsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateExtensionsCombinatorAlias = Mapped>, CertificateExtensionsCont0>, CertificateExtensionsMapper>; @@ -19089,14 +19089,14 @@ pub fn serialize_certificate_extensions<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_extensions().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_extensions().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_extensions().spec_serialize(v@)) }, { let combinator = certificate_extensions(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_extensions_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19275,7 +19275,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateEntryOpaqueCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateEntryOpaqueCombinatorAlias = Mapped; @@ -19327,14 +19327,14 @@ pub fn serialize_certificate_entry_opaque<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_entry_opaque().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_entry_opaque().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_entry_opaque().spec_serialize(v@)) }, { let combinator = certificate_entry_opaque(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_entry_opaque_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19475,7 +19475,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateListCombinatorAlias = Mapped>, CertificateListCont0>, CertificateListMapper>; @@ -19542,14 +19542,14 @@ pub fn serialize_certificate_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_list().spec_serialize(v@)) }, { let combinator = certificate_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19728,7 +19728,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateCombinatorAlias = Mapped; @@ -19780,14 +19780,14 @@ pub fn serialize_certificate<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate().spec_serialize(v@)) }, { let combinator = certificate(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19928,7 +19928,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateRequestExtensionsCombi fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateRequestExtensionsCombinatorAlias = Mapped, AndThen>, CertificateRequestExtensionsCont0>, CertificateRequestExtensionsMapper>; @@ -19995,14 +19995,14 @@ pub fn serialize_certificate_request_extensions<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_request_extensions().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_request_extensions().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_request_extensions().spec_serialize(v@)) }, { let combinator = certificate_request_extensions(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_request_extensions_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -20181,7 +20181,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateRequestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateRequestCombinatorAlias = Mapped; @@ -20233,14 +20233,14 @@ pub fn serialize_certificate_request<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_request().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_request().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_request().spec_serialize(v@)) }, { let combinator = certificate_request(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_request_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -20388,7 +20388,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateVerifyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateVerifyCombinatorAlias = Mapped; @@ -20440,14 +20440,14 @@ pub fn serialize_certificate_verify<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_verify().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_verify().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_verify().spec_serialize(v@)) }, { let combinator = certificate_verify(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn certificate_verify_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -20680,7 +20680,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FinishedCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FinishedCombinatorAlias = Mapped; @@ -20730,14 +20730,14 @@ pub fn serialize_finished<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_finished(size@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_finished(size@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_finished(size@).spec_serialize(v@)) }, { let combinator = finished( size ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn finished_len<'a>(v: >>::SType, size: u24) -> (serialize_len: usize) @@ -20911,7 +20911,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for KeyUpdateRequestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type KeyUpdateRequestCombinatorAlias = TryMap; @@ -20955,14 +20955,14 @@ pub fn serialize_key_update_request<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_key_update_request().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_key_update_request().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_key_update_request().spec_serialize(v@)) }, { let combinator = key_update_request(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn key_update_request_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -21100,7 +21100,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for KeyUpdateCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type KeyUpdateCombinatorAlias = Mapped; @@ -21152,14 +21152,14 @@ pub fn serialize_key_update<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_key_update().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_key_update().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_key_update().spec_serialize(v@)) }, { let combinator = key_update(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn key_update_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -21456,7 +21456,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HandshakeMsgCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HandshakeMsgCombinatorAlias = AndThen>; @@ -21506,14 +21506,14 @@ pub fn serialize_handshake_msg<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_handshake_msg(length@, msg_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_handshake_msg(length@, msg_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_handshake_msg(length@, msg_type@).spec_serialize(v@)) }, { let combinator = handshake_msg( length, msg_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn handshake_msg_len<'a>(v: >>::SType, length: u24, msg_type: HandshakeType) -> (serialize_len: usize) @@ -21658,7 +21658,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HandshakeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HandshakeCombinatorAlias = Mapped, HandshakeMsgCombinator, HandshakeCont0>, HandshakeMapper>; @@ -21740,14 +21740,14 @@ pub fn serialize_handshake<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_handshake().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_handshake().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_handshake().spec_serialize(v@)) }, { let combinator = handshake(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn handshake_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -21950,7 +21950,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ZeroByteCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ZeroByteCombinatorAlias = Mapped>, ZeroByteMapper>; @@ -22002,14 +22002,14 @@ pub fn serialize_zero_byte<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_zero_byte().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_zero_byte().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_zero_byte().spec_serialize(v@)) }, { let combinator = zero_byte(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn zero_byte_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -22150,7 +22150,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PaddingExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PaddingExtensionCombinatorAlias = Mapped>, PaddingExtensionCont0>, PaddingExtensionMapper>; @@ -22219,14 +22219,14 @@ pub fn serialize_padding_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_padding_extension(ext_len@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_padding_extension(ext_len@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_padding_extension(ext_len@).spec_serialize(v@)) }, { let combinator = padding_extension( ext_len ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn padding_extension_len<'a>(v: >>::SType, ext_len: u16) -> (serialize_len: usize) @@ -22410,7 +22410,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExtensionCombinatorAlias = Mapped; @@ -22462,14 +22462,14 @@ pub fn serialize_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_extension().spec_serialize(v@)) }, { let combinator = extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -22607,7 +22607,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ClientCertTypeServerExtensionComb fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ClientCertTypeServerExtensionCombinatorAlias = Mapped; @@ -22659,14 +22659,14 @@ pub fn serialize_client_cert_type_server_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_client_cert_type_server_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_client_cert_type_server_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_client_cert_type_server_extension().spec_serialize(v@)) }, { let combinator = client_cert_type_server_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn client_cert_type_server_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -22860,7 +22860,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ContentTypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ContentTypeCombinatorAlias = TryMap; @@ -22904,14 +22904,14 @@ pub fn serialize_content_type<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_content_type().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_content_type().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_content_type().spec_serialize(v@)) }, { let combinator = content_type(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn content_type_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -23071,7 +23071,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TlsPlaintextCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TlsPlaintextCombinatorAlias = Mapped; @@ -23123,14 +23123,14 @@ pub fn serialize_tls_plaintext<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tls_plaintext().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tls_plaintext().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tls_plaintext().spec_serialize(v@)) }, { let combinator = tls_plaintext(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tls_plaintext_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -23478,7 +23478,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AlertDescriptionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AlertDescriptionCombinatorAlias = TryMap; @@ -23522,14 +23522,14 @@ pub fn serialize_alert_description<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_alert_description().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_alert_description().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_alert_description().spec_serialize(v@)) }, { let combinator = alert_description(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn alert_description_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -23596,7 +23596,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SrtpProtectionProfileCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SrtpProtectionProfileCombinatorAlias = bytes::Fixed<2>; @@ -23640,14 +23640,14 @@ pub fn serialize_srtp_protection_profile<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_srtp_protection_profile().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_srtp_protection_profile().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_srtp_protection_profile().spec_serialize(v@)) }, { let combinator = srtp_protection_profile(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn srtp_protection_profile_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -23788,7 +23788,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SrtpProtectionProfilesCombinator fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SrtpProtectionProfilesCombinatorAlias = Mapped, AndThen>, SrtpProtectionProfilesCont0>, SrtpProtectionProfilesMapper>; @@ -23855,14 +23855,14 @@ pub fn serialize_srtp_protection_profiles<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_srtp_protection_profiles().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_srtp_protection_profiles().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_srtp_protection_profiles().spec_serialize(v@)) }, { let combinator = srtp_protection_profiles(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn srtp_protection_profiles_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24041,7 +24041,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for UseSrtpDataCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type UseSrtpDataCombinatorAlias = Mapped; @@ -24093,14 +24093,14 @@ pub fn serialize_use_srtp_data<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_use_srtp_data().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_use_srtp_data().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_use_srtp_data().spec_serialize(v@)) }, { let combinator = use_srtp_data(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn use_srtp_data_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24167,7 +24167,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FinishedOpaqueCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FinishedOpaqueCombinatorAlias = bytes::Variable; @@ -24213,14 +24213,14 @@ pub fn serialize_finished_opaque<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_finished_opaque(digest_size@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_finished_opaque(digest_size@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_finished_opaque(digest_size@).spec_serialize(v@)) }, { let combinator = finished_opaque( digest_size ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn finished_opaque_len<'a>(v: >>::SType, digest_size: u24) -> (serialize_len: usize) @@ -24381,7 +24381,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Opaque2FfffCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Opaque2FfffCombinatorAlias = Mapped, bytes::Variable, Opaque2FfffCont0>, Opaque2FfffMapper>; @@ -24448,14 +24448,14 @@ pub fn serialize_opaque_2_ffff<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_opaque_2_ffff().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_opaque_2_ffff().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_opaque_2_ffff().spec_serialize(v@)) }, { let combinator = opaque_2_ffff(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn opaque_2_ffff_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24634,7 +24634,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for AlertCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type AlertCombinatorAlias = Mapped; @@ -24686,14 +24686,14 @@ pub fn serialize_alert<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_alert().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_alert().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_alert().spec_serialize(v@)) }, { let combinator = alert(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn alert_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24831,7 +24831,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ServerCertTypeServerExtensionComb fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ServerCertTypeServerExtensionCombinatorAlias = Mapped; @@ -24883,14 +24883,14 @@ pub fn serialize_server_cert_type_server_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_server_cert_type_server_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_server_cert_type_server_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_server_cert_type_server_extension().spec_serialize(v@)) }, { let combinator = server_cert_type_server_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn server_cert_type_server_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24957,7 +24957,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for UnknownExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type UnknownExtensionCombinatorAlias = Opaque0FfffCombinator; @@ -25001,14 +25001,14 @@ pub fn serialize_unknown_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_unknown_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_unknown_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_unknown_extension().spec_serialize(v@)) }, { let combinator = unknown_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn unknown_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25087,7 +25087,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DigestSizeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DigestSizeCombinatorAlias = U24Be; @@ -25131,14 +25131,14 @@ pub fn serialize_digest_size<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_digest_size().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_digest_size().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_digest_size().spec_serialize(v@)) }, { let combinator = digest_size(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn digest_size_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25276,7 +25276,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for HeartbeatExtensionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type HeartbeatExtensionCombinatorAlias = Mapped; @@ -25328,14 +25328,14 @@ pub fn serialize_heartbeat_extension<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_heartbeat_extension().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_heartbeat_extension().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_heartbeat_extension().spec_serialize(v@)) }, { let combinator = heartbeat_extension(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn heartbeat_extension_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25408,7 +25408,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EcPointFormatCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EcPointFormatCombinatorAlias = U8; @@ -25452,14 +25452,14 @@ pub fn serialize_ec_point_format<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ec_point_format().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ec_point_format().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ec_point_format().spec_serialize(v@)) }, { let combinator = ec_point_format(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ec_point_format_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25600,7 +25600,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EcPointFormatListCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EcPointFormatListCombinatorAlias = Mapped, AndThen>, EcPointFormatListCont0>, EcPointFormatListMapper>; @@ -25667,14 +25667,14 @@ pub fn serialize_ec_point_format_list<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ec_point_format_list().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ec_point_format_list().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ec_point_format_list().spec_serialize(v@)) }, { let combinator = ec_point_format_list(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn ec_point_format_list_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25874,7 +25874,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateEntryDataCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateEntryDataCombinatorAlias = Mapped; @@ -25924,14 +25924,14 @@ pub fn serialize_certificate_entry_data<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_entry_data(cert_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_entry_data(cert_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_entry_data(cert_type@).spec_serialize(v@)) }, { let combinator = certificate_entry_data( cert_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn certificate_entry_data_len<'a>(v: >>::SType, cert_type: u8) -> (serialize_len: usize) @@ -26080,7 +26080,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CertificateEntryCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CertificateEntryCombinatorAlias = Mapped; @@ -26138,14 +26138,14 @@ pub fn serialize_certificate_entry<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_certificate_entry(cert_type@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_certificate_entry(cert_type@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_certificate_entry(cert_type@).spec_serialize(v@)) }, { let combinator = certificate_entry( cert_type ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn certificate_entry_len<'a>(v: >>::SType, cert_type: u8) -> (serialize_len: usize) @@ -26306,7 +26306,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TlsCiphertextCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TlsCiphertextCombinatorAlias = Mapped; @@ -26358,14 +26358,14 @@ pub fn serialize_tls_ciphertext<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tls_ciphertext().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tls_ciphertext().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tls_ciphertext().spec_serialize(v@)) }, { let combinator = tls_ciphertext(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tls_ciphertext_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -26506,7 +26506,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Opaque0FfffffCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Opaque0FfffffCombinatorAlias = Mapped, Opaque0FfffffMapper>; @@ -26573,14 +26573,14 @@ pub fn serialize_opaque_0_ffffff<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_opaque_0_ffffff().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_opaque_0_ffffff().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_opaque_0_ffffff().spec_serialize(v@)) }, { let combinator = opaque_0_ffffff(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn opaque_0_ffffff_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-dsl/wasm/src/vest_wasm.rs b/vest-dsl/wasm/src/vest_wasm.rs index 67f9ee9a..133b39e1 100644 --- a/vest-dsl/wasm/src/vest_wasm.rs +++ b/vest-dsl/wasm/src/vest_wasm.rs @@ -28,7 +28,7 @@ macro_rules! impl_wrapper_combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8], Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } } // verus! }; @@ -86,7 +86,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EmptyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EmptyCombinatorAlias = bytes::Fixed<0>; @@ -130,14 +130,14 @@ pub fn serialize_empty<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_empty().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_empty().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_empty().spec_serialize(v@)) }, { let combinator = empty(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn empty_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -324,7 +324,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NumtypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NumtypeCombinatorAlias = TryMap; @@ -368,14 +368,14 @@ pub fn serialize_numtype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_numtype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_numtype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_numtype().spec_serialize(v@)) }, { let combinator = numtype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn numtype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -541,7 +541,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for VectypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type VectypeCombinatorAlias = TryMap; @@ -585,14 +585,14 @@ pub fn serialize_vectype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_vectype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_vectype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_vectype().spec_serialize(v@)) }, { let combinator = vectype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn vectype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -765,7 +765,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ReftypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ReftypeCombinatorAlias = TryMap; @@ -809,14 +809,14 @@ pub fn serialize_reftype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_reftype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_reftype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_reftype().spec_serialize(v@)) }, { let combinator = reftype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn reftype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1021,7 +1021,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ValtypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ValtypeCombinatorAlias = Mapped; @@ -1065,14 +1065,14 @@ pub fn serialize_valtype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_valtype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_valtype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_valtype().spec_serialize(v@)) }, { let combinator = valtype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn valtype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1213,7 +1213,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for SelectTCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type SelectTCombinatorAlias = Mapped, SelectTCont0>, SelectTMapper>; @@ -1280,14 +1280,14 @@ pub fn serialize_select_t<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_select_t().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_select_t().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_select_t().spec_serialize(v@)) }, { let combinator = select_t(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn select_t_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1491,7 +1491,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MutTCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MutTCombinatorAlias = TryMap; @@ -1535,14 +1535,14 @@ pub fn serialize_mut_t<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mut_t().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mut_t().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mut_t().spec_serialize(v@)) }, { let combinator = mut_t(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn mut_t_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1609,7 +1609,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TableidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TableidxCombinatorAlias = UnsignedLEB128; @@ -1653,14 +1653,14 @@ pub fn serialize_tableidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tableidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tableidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tableidx().spec_serialize(v@)) }, { let combinator = tableidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tableidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -1727,7 +1727,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TableFillCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TableFillCombinatorAlias = TableidxCombinator; @@ -1771,14 +1771,14 @@ pub fn serialize_table_fill<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_table_fill().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_table_fill().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_table_fill().spec_serialize(v@)) }, { let combinator = table_fill(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn table_fill_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2215,7 +2215,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrBytecodeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrBytecodeCombinatorAlias = U8; @@ -2259,14 +2259,14 @@ pub fn serialize_instr_bytecode<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_bytecode().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_bytecode().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_bytecode().spec_serialize(v@)) }, { let combinator = instr_bytecode(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn instr_bytecode_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2333,7 +2333,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LocalidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LocalidxCombinatorAlias = UnsignedLEB128; @@ -2377,14 +2377,14 @@ pub fn serialize_localidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_localidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_localidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_localidx().spec_serialize(v@)) }, { let combinator = localidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn localidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2451,7 +2451,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for GlobalidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type GlobalidxCombinatorAlias = UnsignedLEB128; @@ -2495,14 +2495,14 @@ pub fn serialize_globalidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_globalidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_globalidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_globalidx().spec_serialize(v@)) }, { let combinator = globalidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn globalidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2719,7 +2719,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrVariableCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrVariableCombinatorAlias = Mapped; @@ -2769,14 +2769,14 @@ pub fn serialize_instr_variable<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_variable(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_variable(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_variable(opcode@).spec_serialize(v@)) }, { let combinator = instr_variable( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_variable_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -2844,7 +2844,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LabelidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LabelidxCombinatorAlias = UnsignedLEB128; @@ -2888,14 +2888,14 @@ pub fn serialize_labelidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_labelidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_labelidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_labelidx().spec_serialize(v@)) }, { let combinator = labelidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn labelidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -2962,7 +2962,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FuncidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FuncidxCombinatorAlias = UnsignedLEB128; @@ -3006,14 +3006,14 @@ pub fn serialize_funcidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_funcidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_funcidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_funcidx().spec_serialize(v@)) }, { let combinator = funcidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn funcidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3154,7 +3154,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LabelidxVecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LabelidxVecCombinatorAlias = Mapped, LabelidxVecCont0>, LabelidxVecMapper>; @@ -3221,14 +3221,14 @@ pub fn serialize_labelidx_vec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_labelidx_vec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_labelidx_vec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_labelidx_vec().spec_serialize(v@)) }, { let combinator = labelidx_vec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn labelidx_vec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3407,7 +3407,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for BrTableCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type BrTableCombinatorAlias = Mapped; @@ -3459,14 +3459,14 @@ pub fn serialize_br_table<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_br_table().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_br_table().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_br_table().spec_serialize(v@)) }, { let combinator = br_table(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn br_table_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3533,7 +3533,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TypeidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TypeidxCombinatorAlias = UnsignedLEB128; @@ -3577,14 +3577,14 @@ pub fn serialize_typeidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_typeidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_typeidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_typeidx().spec_serialize(v@)) }, { let combinator = typeidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn typeidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -3732,7 +3732,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CallIndirectCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CallIndirectCombinatorAlias = Mapped; @@ -3784,14 +3784,14 @@ pub fn serialize_call_indirect<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_call_indirect().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_call_indirect().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_call_indirect().spec_serialize(v@)) }, { let combinator = call_indirect(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn call_indirect_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4040,7 +4040,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrControl2Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrControl2CombinatorAlias = Mapped; @@ -4090,14 +4090,14 @@ pub fn serialize_instr_control2<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_control2(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_control2(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_control2(opcode@).spec_serialize(v@)) }, { let combinator = instr_control2( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_control2_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -4266,7 +4266,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for EmptyBlockCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type EmptyBlockCombinatorAlias = Mapped; @@ -4318,14 +4318,14 @@ pub fn serialize_empty_block<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_empty_block().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_empty_block().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_empty_block().spec_serialize(v@)) }, { let combinator = empty_block(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn empty_block_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4493,7 +4493,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ValtypeBlockCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ValtypeBlockCombinatorAlias = Mapped; @@ -4545,14 +4545,14 @@ pub fn serialize_valtype_block<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_valtype_block().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_valtype_block().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_valtype_block().spec_serialize(v@)) }, { let combinator = valtype_block(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn valtype_block_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4720,7 +4720,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TypeidxBlockCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TypeidxBlockCombinatorAlias = Mapped; @@ -4772,14 +4772,14 @@ pub fn serialize_typeidx_block<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_typeidx_block().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_typeidx_block().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_typeidx_block().spec_serialize(v@)) }, { let combinator = typeidx_block(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn typeidx_block_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -4984,7 +4984,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for BlocktypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type BlocktypeCombinatorAlias = Mapped; @@ -5028,14 +5028,14 @@ pub fn serialize_blocktype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_blocktype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_blocktype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_blocktype().spec_serialize(v@)) }, { let combinator = blocktype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn blocktype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5268,7 +5268,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrControl1Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrControl1CombinatorAlias = Mapped; @@ -5318,14 +5318,14 @@ pub fn serialize_instr_control1<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_control1(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_control1(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_control1(opcode@).spec_serialize(v@)) }, { let combinator = instr_control1( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_control1_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -5474,7 +5474,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemargCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemargCombinatorAlias = Mapped; @@ -5526,14 +5526,14 @@ pub fn serialize_memarg<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_memarg().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_memarg().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_memarg().spec_serialize(v@)) }, { let combinator = memarg(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn memarg_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5672,7 +5672,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ByteZeroCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ByteZeroCombinatorAlias = Mapped>, ByteZeroMapper>; @@ -5724,14 +5724,14 @@ pub fn serialize_byte_zero<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_byte_zero().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_byte_zero().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_byte_zero().spec_serialize(v@)) }, { let combinator = byte_zero(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn byte_zero_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -5980,7 +5980,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrMemoryCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrMemoryCombinatorAlias = Mapped; @@ -6030,14 +6030,14 @@ pub fn serialize_instr_memory<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_memory(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_memory(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_memory(opcode@).spec_serialize(v@)) }, { let combinator = instr_memory( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_memory_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -6223,7 +6223,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrReferenceCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrReferenceCombinatorAlias = Mapped; @@ -6273,14 +6273,14 @@ pub fn serialize_instr_reference<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_reference(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_reference(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_reference(opcode@).spec_serialize(v@)) }, { let combinator = instr_reference( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_reference_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -6466,7 +6466,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrParametricCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrParametricCombinatorAlias = Mapped; @@ -6516,14 +6516,14 @@ pub fn serialize_instr_parametric<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_parametric(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_parametric(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_parametric(opcode@).spec_serialize(v@)) }, { let combinator = instr_parametric( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_parametric_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -6693,7 +6693,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrTableCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrTableCombinatorAlias = Mapped; @@ -6743,14 +6743,14 @@ pub fn serialize_instr_table<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_table(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_table(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_table(opcode@).spec_serialize(v@)) }, { let combinator = instr_table( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_table_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -6818,7 +6818,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for F32Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type F32CombinatorAlias = bytes::Fixed<4>; @@ -6862,14 +6862,14 @@ pub fn serialize_f32<'a>(v: >> spec_f32().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_f32().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_f32().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_f32().spec_serialize(v@)) }, { let combinator = f32(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn f32_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -6936,7 +6936,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for F64Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type F64CombinatorAlias = bytes::Fixed<8>; @@ -6980,14 +6980,14 @@ pub fn serialize_f64<'a>(v: >> spec_f64().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_f64().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_f64().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_f64().spec_serialize(v@)) }, { let combinator = f64(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn f64_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7204,7 +7204,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrNumericCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrNumericCombinatorAlias = Mapped; @@ -7254,14 +7254,14 @@ pub fn serialize_instr_numeric<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_numeric(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_numeric(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_numeric(opcode@).spec_serialize(v@)) }, { let combinator = instr_numeric( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_numeric_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -7329,7 +7329,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ElemidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ElemidxCombinatorAlias = UnsignedLEB128; @@ -7373,14 +7373,14 @@ pub fn serialize_elemidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_elemidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_elemidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_elemidx().spec_serialize(v@)) }, { let combinator = elemidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn elemidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7528,7 +7528,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TableInitCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TableInitCombinatorAlias = Mapped; @@ -7580,14 +7580,14 @@ pub fn serialize_table_init<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_table_init().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_table_init().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_table_init().spec_serialize(v@)) }, { let combinator = table_init(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn table_init_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7654,7 +7654,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ElemDropCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ElemDropCombinatorAlias = ElemidxCombinator; @@ -7698,14 +7698,14 @@ pub fn serialize_elem_drop<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_elem_drop().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_elem_drop().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_elem_drop().spec_serialize(v@)) }, { let combinator = elem_drop(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn elem_drop_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7853,7 +7853,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TableCopyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TableCopyCombinatorAlias = Mapped; @@ -7905,14 +7905,14 @@ pub fn serialize_table_copy<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_table_copy().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_table_copy().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_table_copy().spec_serialize(v@)) }, { let combinator = table_copy(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn table_copy_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -7979,7 +7979,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TableGrowCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TableGrowCombinatorAlias = TableidxCombinator; @@ -8023,14 +8023,14 @@ pub fn serialize_table_grow<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_table_grow().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_table_grow().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_table_grow().spec_serialize(v@)) }, { let combinator = table_grow(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn table_grow_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8097,7 +8097,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TableSizeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TableSizeCombinatorAlias = TableidxCombinator; @@ -8141,14 +8141,14 @@ pub fn serialize_table_size<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_table_size().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_table_size().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_table_size().spec_serialize(v@)) }, { let combinator = table_size(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn table_size_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8215,7 +8215,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DataidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DataidxCombinatorAlias = UnsignedLEB128; @@ -8259,14 +8259,14 @@ pub fn serialize_dataidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_dataidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_dataidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_dataidx().spec_serialize(v@)) }, { let combinator = dataidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn dataidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8336,7 +8336,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemoryInitCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemoryInitCombinatorAlias = Terminated>; @@ -8380,14 +8380,14 @@ pub fn serialize_memory_init<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_memory_init().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_memory_init().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_memory_init().spec_serialize(v@)) }, { let combinator = memory_init(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn memory_init_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8454,7 +8454,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DataDropCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DataDropCombinatorAlias = DataidxCombinator; @@ -8498,14 +8498,14 @@ pub fn serialize_data_drop<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_data_drop().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_data_drop().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_data_drop().spec_serialize(v@)) }, { let combinator = data_drop(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn data_drop_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8650,7 +8650,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemoryCopyCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemoryCopyCombinatorAlias = Mapped, TagPred<[u8; 2]>>, MemoryCopyMapper>; @@ -8702,14 +8702,14 @@ pub fn serialize_memory_copy<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_memory_copy().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_memory_copy().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_memory_copy().spec_serialize(v@)) }, { let combinator = memory_copy(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn memory_copy_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -8848,7 +8848,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemoryFillCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemoryFillCombinatorAlias = Mapped>, MemoryFillMapper>; @@ -8900,14 +8900,14 @@ pub fn serialize_memory_fill<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_memory_fill().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_memory_fill().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_memory_fill().spec_serialize(v@)) }, { let combinator = memory_fill(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn memory_fill_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9220,7 +9220,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrWithFcRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrWithFcRestCombinatorAlias = Mapped; @@ -9266,14 +9266,14 @@ pub fn serialize_instr_with_fc_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_with_fc_rest(tag@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_with_fc_rest(tag@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_with_fc_rest(tag@).spec_serialize(v@)) }, { let combinator = instr_with_fc_rest( tag ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_with_fc_rest_len<'a>(v: >>::SType, tag: u64) -> (serialize_len: usize) @@ -9414,7 +9414,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrWithFcCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrWithFcCombinatorAlias = Mapped, InstrWithFcMapper>; @@ -9481,14 +9481,14 @@ pub fn serialize_instr_with_fc<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_with_fc().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_with_fc().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_with_fc().spec_serialize(v@)) }, { let combinator = instr_with_fc(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn instr_with_fc_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9586,7 +9586,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LaneidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LaneidxCombinatorAlias = U8; @@ -9630,14 +9630,14 @@ pub fn serialize_laneidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_laneidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_laneidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_laneidx().spec_serialize(v@)) }, { let combinator = laneidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn laneidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9785,7 +9785,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for V128LaneCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type V128LaneCombinatorAlias = Mapped; @@ -9837,14 +9837,14 @@ pub fn serialize_v128_lane<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_v128_lane().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_v128_lane().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_v128_lane().spec_serialize(v@)) }, { let combinator = v128_lane(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn v128_lane_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -9911,7 +9911,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for V128ConstCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type V128ConstCombinatorAlias = bytes::Fixed<16>; @@ -9955,14 +9955,14 @@ pub fn serialize_v128_const<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_v128_const().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_v128_const().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_v128_const().spec_serialize(v@)) }, { let combinator = v128_const(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn v128_const_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10029,7 +10029,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ShuffleCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ShuffleCombinatorAlias = RepeatN; @@ -10073,14 +10073,14 @@ pub fn serialize_shuffle<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_shuffle().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_shuffle().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_shuffle().spec_serialize(v@)) }, { let combinator = shuffle(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn shuffle_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10345,7 +10345,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrWithFdRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrWithFdRestCombinatorAlias = Mapped; @@ -10391,14 +10391,14 @@ pub fn serialize_instr_with_fd_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_with_fd_rest(tag@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_with_fd_rest(tag@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_with_fd_rest(tag@).spec_serialize(v@)) }, { let combinator = instr_with_fd_rest( tag ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_with_fd_rest_len<'a>(v: >>::SType, tag: u64) -> (serialize_len: usize) @@ -10539,7 +10539,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrWithFdCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrWithFdCombinatorAlias = Mapped, InstrWithFdMapper>; @@ -10606,14 +10606,14 @@ pub fn serialize_instr_with_fd<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_with_fd().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_with_fd().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_with_fd().spec_serialize(v@)) }, { let combinator = instr_with_fd(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn instr_with_fd_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -10957,7 +10957,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrRestCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrRestCombinatorAlias = Mapped; @@ -11007,14 +11007,14 @@ pub fn serialize_instr_rest<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr_rest(opcode@).spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr_rest(opcode@).spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr_rest(opcode@).spec_serialize(v@)) }, { let combinator = instr_rest( opcode ); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn instr_rest_len<'a>(v: >>::SType, opcode: u8) -> (serialize_len: usize) @@ -11156,7 +11156,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for InstrCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type InstrCombinatorAlias = Mapped, InstrMapper>; @@ -11223,14 +11223,14 @@ pub fn serialize_instr<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_instr().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_instr().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_instr().spec_serialize(v@)) }, { let combinator = instr(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn instr_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11399,7 +11399,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LimitMinCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LimitMinCombinatorAlias = Mapped; @@ -11451,14 +11451,14 @@ pub fn serialize_limit_min<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_limit_min().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_limit_min().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_limit_min().spec_serialize(v@)) }, { let combinator = limit_min(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn limit_min_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11606,7 +11606,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LimitMinMaxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LimitMinMaxCombinatorAlias = Mapped; @@ -11658,14 +11658,14 @@ pub fn serialize_limit_min_max<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_limit_min_max().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_limit_min_max().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_limit_min_max().spec_serialize(v@)) }, { let combinator = limit_min_max(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn limit_min_max_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11840,7 +11840,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LimitsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LimitsCombinatorAlias = Mapped; @@ -11884,14 +11884,14 @@ pub fn serialize_limits<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_limits().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_limits().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_limits().spec_serialize(v@)) }, { let combinator = limits(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn limits_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -11958,7 +11958,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemtypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemtypeCombinatorAlias = LimitsCombinator; @@ -12002,14 +12002,14 @@ pub fn serialize_memtype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_memtype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_memtype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_memtype().spec_serialize(v@)) }, { let combinator = memtype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn memtype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12147,7 +12147,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemCombinatorAlias = Mapped; @@ -12199,14 +12199,14 @@ pub fn serialize_mem<'a>(v: >> spec_mem().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_mem().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_mem().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_mem().spec_serialize(v@)) }, { let combinator = mem(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn mem_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12347,7 +12347,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemsecContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemsecContentCombinatorAlias = Mapped, MemsecContentCont0>, MemsecContentMapper>; @@ -12414,14 +12414,14 @@ pub fn serialize_memsec_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_memsec_content().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_memsec_content().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_memsec_content().spec_serialize(v@)) }, { let combinator = memsec_content(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn memsec_content_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12593,7 +12593,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemsecCombinatorAlias = Mapped, MemsecCont0>, MemsecMapper>; @@ -12660,14 +12660,14 @@ pub fn serialize_memsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_memsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_memsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_memsec().spec_serialize(v@)) }, { let combinator = memsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn memsec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12765,7 +12765,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MemidxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MemidxCombinatorAlias = UnsignedLEB128; @@ -12809,14 +12809,14 @@ pub fn serialize_memidx<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_memidx().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_memidx().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_memidx().spec_serialize(v@)) }, { let combinator = memidx(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn memidx_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -12957,7 +12957,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExprInnerCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExprInnerCombinatorAlias = Mapped, ExprInnerCont0>, ExprInnerMapper>; @@ -13024,14 +13024,14 @@ pub fn serialize_expr_inner<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_expr_inner().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_expr_inner().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_expr_inner().spec_serialize(v@)) }, { let combinator = expr_inner(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn expr_inner_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13132,7 +13132,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExprCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExprCombinatorAlias = Terminated>; @@ -13176,14 +13176,14 @@ pub fn serialize_expr<'a>(v: spec_expr().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_expr().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_expr().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_expr().spec_serialize(v@)) }, { let combinator = expr(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn expr_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13324,7 +13324,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ByteVecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ByteVecCombinatorAlias = Mapped, ByteVecCont0>, ByteVecMapper>; @@ -13391,14 +13391,14 @@ pub fn serialize_byte_vec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_byte_vec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_byte_vec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_byte_vec().spec_serialize(v@)) }, { let combinator = byte_vec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn byte_vec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13589,7 +13589,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ActiveDataxCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ActiveDataxCombinatorAlias = Mapped; @@ -13641,14 +13641,14 @@ pub fn serialize_active_datax<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_active_datax().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_active_datax().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_active_datax().spec_serialize(v@)) }, { let combinator = active_datax(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn active_datax_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13715,7 +13715,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for NameCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type NameCombinatorAlias = ByteVecCombinator; @@ -13759,14 +13759,14 @@ pub fn serialize_name<'a>(v: spec_name().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_name().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_name().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_name().spec_serialize(v@)) }, { let combinator = name(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn name_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -13979,7 +13979,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExportdescCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExportdescCombinatorAlias = Mapped; @@ -14023,14 +14023,14 @@ pub fn serialize_exportdesc<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_exportdesc().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_exportdesc().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_exportdesc().spec_serialize(v@)) }, { let combinator = exportdesc(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn exportdesc_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -14178,7 +14178,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExportCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExportCombinatorAlias = Mapped; @@ -14230,14 +14230,14 @@ pub fn serialize_export<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_export().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_export().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_export().spec_serialize(v@)) }, { let combinator = export(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn export_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -14378,7 +14378,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ResulttypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ResulttypeCombinatorAlias = Mapped, ResulttypeCont0>, ResulttypeMapper>; @@ -14445,14 +14445,14 @@ pub fn serialize_resulttype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_resulttype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_resulttype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_resulttype().spec_serialize(v@)) }, { let combinator = resulttype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn resulttype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -14644,7 +14644,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FunctypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FunctypeCombinatorAlias = Mapped; @@ -14696,14 +14696,14 @@ pub fn serialize_functype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_functype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_functype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_functype().spec_serialize(v@)) }, { let combinator = functype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn functype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -14844,7 +14844,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TypesecContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TypesecContentCombinatorAlias = Mapped, TypesecContentCont0>, TypesecContentMapper>; @@ -14911,14 +14911,14 @@ pub fn serialize_typesec_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_typesec_content().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_typesec_content().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_typesec_content().spec_serialize(v@)) }, { let combinator = typesec_content(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn typesec_content_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -15090,7 +15090,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TypesecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TypesecCombinatorAlias = Mapped, TypesecCont0>, TypesecMapper>; @@ -15157,14 +15157,14 @@ pub fn serialize_typesec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_typesec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_typesec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_typesec().spec_serialize(v@)) }, { let combinator = typesec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn typesec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -15343,7 +15343,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TabletypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TabletypeCombinatorAlias = Mapped; @@ -15395,14 +15395,14 @@ pub fn serialize_tabletype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tabletype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tabletype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tabletype().spec_serialize(v@)) }, { let combinator = tabletype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tabletype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -15550,7 +15550,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for GlobaltypeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type GlobaltypeCombinatorAlias = Mapped; @@ -15602,14 +15602,14 @@ pub fn serialize_globaltype<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_globaltype().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_globaltype().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_globaltype().spec_serialize(v@)) }, { let combinator = globaltype(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn globaltype_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -15822,7 +15822,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ImportdescCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ImportdescCombinatorAlias = Mapped; @@ -15866,14 +15866,14 @@ pub fn serialize_importdesc<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_importdesc().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_importdesc().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_importdesc().spec_serialize(v@)) }, { let combinator = importdesc(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn importdesc_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16033,7 +16033,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ImportCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ImportCombinatorAlias = Mapped; @@ -16085,14 +16085,14 @@ pub fn serialize_import<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_import().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_import().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_import().spec_serialize(v@)) }, { let combinator = import(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn import_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16233,7 +16233,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ImportsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ImportsCombinatorAlias = Mapped, ImportsCont0>, ImportsMapper>; @@ -16300,14 +16300,14 @@ pub fn serialize_imports<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_imports().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_imports().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_imports().spec_serialize(v@)) }, { let combinator = imports(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn imports_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16479,7 +16479,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ImportsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ImportsecCombinatorAlias = Mapped, ImportsecCont0>, ImportsecMapper>; @@ -16546,14 +16546,14 @@ pub fn serialize_importsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_importsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_importsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_importsec().spec_serialize(v@)) }, { let combinator = importsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn importsec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16725,7 +16725,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FuncsecContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FuncsecContentCombinatorAlias = Mapped, FuncsecContentCont0>, FuncsecContentMapper>; @@ -16792,14 +16792,14 @@ pub fn serialize_funcsec_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_funcsec_content().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_funcsec_content().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_funcsec_content().spec_serialize(v@)) }, { let combinator = funcsec_content(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn funcsec_content_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -16971,7 +16971,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FuncsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FuncsecCombinatorAlias = Mapped, FuncsecCont0>, FuncsecMapper>; @@ -17038,14 +17038,14 @@ pub fn serialize_funcsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_funcsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_funcsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_funcsec().spec_serialize(v@)) }, { let combinator = funcsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn funcsec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17214,7 +17214,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TableCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TableCombinatorAlias = Mapped; @@ -17266,14 +17266,14 @@ pub fn serialize_table<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_table().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_table().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_table().spec_serialize(v@)) }, { let combinator = table(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn table_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17414,7 +17414,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TablesecContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TablesecContentCombinatorAlias = Mapped, TablesecContentCont0>, TablesecContentMapper>; @@ -17481,14 +17481,14 @@ pub fn serialize_tablesec_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tablesec_content().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tablesec_content().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tablesec_content().spec_serialize(v@)) }, { let combinator = tablesec_content(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tablesec_content_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17660,7 +17660,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for TablesecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type TablesecCombinatorAlias = Mapped, TablesecCont0>, TablesecMapper>; @@ -17727,14 +17727,14 @@ pub fn serialize_tablesec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_tablesec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_tablesec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_tablesec().spec_serialize(v@)) }, { let combinator = tablesec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn tablesec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -17913,7 +17913,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for GlobalCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type GlobalCombinatorAlias = Mapped; @@ -17965,14 +17965,14 @@ pub fn serialize_global<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_global().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_global().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_global().spec_serialize(v@)) }, { let combinator = global(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn global_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -18113,7 +18113,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for GlobalsecContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type GlobalsecContentCombinatorAlias = Mapped, GlobalsecContentCont0>, GlobalsecContentMapper>; @@ -18180,14 +18180,14 @@ pub fn serialize_globalsec_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_globalsec_content().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_globalsec_content().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_globalsec_content().spec_serialize(v@)) }, { let combinator = globalsec_content(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn globalsec_content_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -18359,7 +18359,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for GlobalsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type GlobalsecCombinatorAlias = Mapped, GlobalsecCont0>, GlobalsecMapper>; @@ -18426,14 +18426,14 @@ pub fn serialize_globalsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_globalsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_globalsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_globalsec().spec_serialize(v@)) }, { let combinator = globalsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn globalsec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -18605,7 +18605,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExportsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExportsCombinatorAlias = Mapped, ExportsCont0>, ExportsMapper>; @@ -18672,14 +18672,14 @@ pub fn serialize_exports<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_exports().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_exports().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_exports().spec_serialize(v@)) }, { let combinator = exports(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn exports_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -18851,7 +18851,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExportsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExportsecCombinatorAlias = Mapped, ExportsecCont0>, ExportsecMapper>; @@ -18918,14 +18918,14 @@ pub fn serialize_exportsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_exportsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_exportsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_exportsec().spec_serialize(v@)) }, { let combinator = exportsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn exportsec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19094,7 +19094,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for StartCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type StartCombinatorAlias = Mapped; @@ -19146,14 +19146,14 @@ pub fn serialize_start<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_start().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_start().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_start().spec_serialize(v@)) }, { let combinator = start(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn start_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19294,7 +19294,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for StartsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type StartsecCombinatorAlias = Mapped, StartsecCont0>, StartsecMapper>; @@ -19361,14 +19361,14 @@ pub fn serialize_startsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_startsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_startsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_startsec().spec_serialize(v@)) }, { let combinator = startsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn startsec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19540,7 +19540,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FuncidxsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FuncidxsCombinatorAlias = Mapped, FuncidxsCont0>, FuncidxsMapper>; @@ -19607,14 +19607,14 @@ pub fn serialize_funcidxs<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_funcidxs().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_funcidxs().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_funcidxs().spec_serialize(v@)) }, { let combinator = funcidxs(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn funcidxs_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -19793,7 +19793,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParsedElem0Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParsedElem0CombinatorAlias = Mapped; @@ -19845,14 +19845,14 @@ pub fn serialize_parsed_elem0<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_parsed_elem0().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_parsed_elem0().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_parsed_elem0().spec_serialize(v@)) }, { let combinator = parsed_elem0(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn parsed_elem0_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -20000,7 +20000,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParsedElem1Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParsedElem1CombinatorAlias = Mapped; @@ -20052,14 +20052,14 @@ pub fn serialize_parsed_elem1<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_parsed_elem1().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_parsed_elem1().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_parsed_elem1().spec_serialize(v@)) }, { let combinator = parsed_elem1(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn parsed_elem1_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -20231,7 +20231,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParsedElem2Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParsedElem2CombinatorAlias = Mapped; @@ -20283,14 +20283,14 @@ pub fn serialize_parsed_elem2<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_parsed_elem2().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_parsed_elem2().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_parsed_elem2().spec_serialize(v@)) }, { let combinator = parsed_elem2(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn parsed_elem2_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -20357,7 +20357,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParsedElem3Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParsedElem3CombinatorAlias = ParsedElem1Combinator; @@ -20401,14 +20401,14 @@ pub fn serialize_parsed_elem3<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_parsed_elem3().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_parsed_elem3().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_parsed_elem3().spec_serialize(v@)) }, { let combinator = parsed_elem3(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn parsed_elem3_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -20549,7 +20549,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ExprsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ExprsCombinatorAlias = Mapped, ExprsCont0>, ExprsMapper>; @@ -20616,14 +20616,14 @@ pub fn serialize_exprs<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_exprs().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_exprs().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_exprs().spec_serialize(v@)) }, { let combinator = exprs(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn exprs_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -20802,7 +20802,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParsedElem4Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParsedElem4CombinatorAlias = Mapped; @@ -20854,14 +20854,14 @@ pub fn serialize_parsed_elem4<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_parsed_elem4().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_parsed_elem4().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_parsed_elem4().spec_serialize(v@)) }, { let combinator = parsed_elem4(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn parsed_elem4_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -21009,7 +21009,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParsedElem5Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParsedElem5CombinatorAlias = Mapped; @@ -21061,14 +21061,14 @@ pub fn serialize_parsed_elem5<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_parsed_elem5().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_parsed_elem5().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_parsed_elem5().spec_serialize(v@)) }, { let combinator = parsed_elem5(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn parsed_elem5_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -21240,7 +21240,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParsedElem6Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParsedElem6CombinatorAlias = Mapped; @@ -21292,14 +21292,14 @@ pub fn serialize_parsed_elem6<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_parsed_elem6().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_parsed_elem6().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_parsed_elem6().spec_serialize(v@)) }, { let combinator = parsed_elem6(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn parsed_elem6_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -21447,7 +21447,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ParsedElem7Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ParsedElem7CombinatorAlias = Mapped; @@ -21499,14 +21499,14 @@ pub fn serialize_parsed_elem7<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_parsed_elem7().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_parsed_elem7().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_parsed_elem7().spec_serialize(v@)) }, { let combinator = parsed_elem7(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn parsed_elem7_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -21795,7 +21795,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ElemCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ElemCombinatorAlias = Mapped; @@ -21839,14 +21839,14 @@ pub fn serialize_elem<'a>(v: spec_elem().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_elem().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_elem().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_elem().spec_serialize(v@)) }, { let combinator = elem(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn elem_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -21987,7 +21987,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ElemsecContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ElemsecContentCombinatorAlias = Mapped, ElemsecContentCont0>, ElemsecContentMapper>; @@ -22054,14 +22054,14 @@ pub fn serialize_elemsec_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_elemsec_content().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_elemsec_content().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_elemsec_content().spec_serialize(v@)) }, { let combinator = elemsec_content(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn elemsec_content_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -22233,7 +22233,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ElemsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ElemsecCombinatorAlias = Mapped, ElemsecCont0>, ElemsecMapper>; @@ -22300,14 +22300,14 @@ pub fn serialize_elemsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_elemsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_elemsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_elemsec().spec_serialize(v@)) }, { let combinator = elemsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn elemsec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -22479,7 +22479,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DatacountsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DatacountsecCombinatorAlias = Mapped, DatacountsecCont0>, DatacountsecMapper>; @@ -22546,14 +22546,14 @@ pub fn serialize_datacountsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_datacountsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_datacountsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_datacountsec().spec_serialize(v@)) }, { let combinator = datacountsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn datacountsec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -22732,7 +22732,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LocalCompressedCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LocalCompressedCombinatorAlias = Mapped; @@ -22784,14 +22784,14 @@ pub fn serialize_local_compressed<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_local_compressed().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_local_compressed().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_local_compressed().spec_serialize(v@)) }, { let combinator = local_compressed(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn local_compressed_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -22932,7 +22932,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for LocalsCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type LocalsCombinatorAlias = Mapped, LocalsCont0>, LocalsMapper>; @@ -22999,14 +22999,14 @@ pub fn serialize_locals<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_locals().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_locals().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_locals().spec_serialize(v@)) }, { let combinator = locals(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn locals_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -23185,7 +23185,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for FuncCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type FuncCombinatorAlias = Mapped; @@ -23237,14 +23237,14 @@ pub fn serialize_func<'a>(v: spec_func().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_func().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_func().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_func().spec_serialize(v@)) }, { let combinator = func(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn func_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -23385,7 +23385,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CodeCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CodeCombinatorAlias = Mapped, CodeCont0>, CodeMapper>; @@ -23452,14 +23452,14 @@ pub fn serialize_code<'a>(v: spec_code().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_code().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_code().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_code().spec_serialize(v@)) }, { let combinator = code(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn code_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -23631,7 +23631,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CodesecContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CodesecContentCombinatorAlias = Mapped, CodesecContentCont0>, CodesecContentMapper>; @@ -23698,14 +23698,14 @@ pub fn serialize_codesec_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_codesec_content().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_codesec_content().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_codesec_content().spec_serialize(v@)) }, { let combinator = codesec_content(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn codesec_content_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -23877,7 +23877,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CodesecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CodesecCombinatorAlias = Mapped, CodesecCont0>, CodesecMapper>; @@ -23944,14 +23944,14 @@ pub fn serialize_codesec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_codesec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_codesec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_codesec().spec_serialize(v@)) }, { let combinator = codesec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn codesec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24130,7 +24130,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ActiveData0Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ActiveData0CombinatorAlias = Mapped; @@ -24182,14 +24182,14 @@ pub fn serialize_active_data0<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_active_data0().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_active_data0().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_active_data0().spec_serialize(v@)) }, { let combinator = active_data0(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn active_data0_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24256,7 +24256,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PassiveDataCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type PassiveDataCombinatorAlias = ByteVecCombinator; @@ -24300,14 +24300,14 @@ pub fn serialize_passive_data<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_passive_data().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_passive_data().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_passive_data().spec_serialize(v@)) }, { let combinator = passive_data(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn passive_data_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24501,7 +24501,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DataCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DataCombinatorAlias = Mapped; @@ -24545,14 +24545,14 @@ pub fn serialize_data<'a>(v: spec_data().wf(v@), ensures o matches Ok(n) ==> { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_data().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_data().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_data().spec_serialize(v@)) }, { let combinator = data(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn data_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24693,7 +24693,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DatasecContentCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DatasecContentCombinatorAlias = Mapped, DatasecContentCont0>, DatasecContentMapper>; @@ -24760,14 +24760,14 @@ pub fn serialize_datasec_content<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_datasec_content().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_datasec_content().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_datasec_content().spec_serialize(v@)) }, { let combinator = datasec_content(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn datasec_content_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -24939,7 +24939,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for DatasecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type DatasecCombinatorAlias = Mapped, DatasecCont0>, DatasecMapper>; @@ -25006,14 +25006,14 @@ pub fn serialize_datasec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_datasec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_datasec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_datasec().spec_serialize(v@)) }, { let combinator = datasec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn datasec_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25386,7 +25386,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ModuleCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type ModuleCombinatorAlias = Mapped; @@ -25438,14 +25438,14 @@ pub fn serialize_module<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_module().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_module().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_module().spec_serialize(v@)) }, { let combinator = module(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn module_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25512,7 +25512,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Signed32Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Signed32CombinatorAlias = bytes::Fixed<4>; @@ -25556,14 +25556,14 @@ pub fn serialize_signed_32<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_signed_32().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_signed_32().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_signed_32().spec_serialize(v@)) }, { let combinator = signed_32(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn signed_32_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25625,14 +25625,14 @@ pub fn serialize_ELEMKIND<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_ELEMKIND().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_ELEMKIND().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_ELEMKIND().spec_serialize(v@)) }, { let combinator = ELEMKIND(); - combinator.serialize(v, data, pos) + combinator.serialize(v, &mut *data, pos) } pub fn ELEMKIND_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25698,7 +25698,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for MyCustomSectionCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type MyCustomSectionCombinatorAlias = ByteVecCombinator; @@ -25742,14 +25742,14 @@ pub fn serialize_my_custom_section<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_my_custom_section().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_my_custom_section().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_my_custom_section().spec_serialize(v@)) }, { let combinator = my_custom_section(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn my_custom_section_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -25897,7 +25897,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CustomCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CustomCombinatorAlias = Mapped; @@ -25949,14 +25949,14 @@ pub fn serialize_custom<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_custom().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_custom().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_custom().spec_serialize(v@)) }, { let combinator = custom(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn custom_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -26023,7 +26023,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Signed64Combinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type Signed64CombinatorAlias = bytes::Fixed<8>; @@ -26067,14 +26067,14 @@ pub fn serialize_signed_64<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_signed_64().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_signed_64().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_signed_64().spec_serialize(v@)) }, { let combinator = signed_64(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn signed_64_len<'a>(v: >>::SType) -> (serialize_len: usize) @@ -26215,7 +26215,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for CustomsecCombinator { fn parse(&self, s: &'a [u8]) -> (res: Result<(usize, Self::Type), ParseError>) { <_ as Combinator<'a, &'a [u8],Vec>>::parse(&self.0, s) } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (o: Result) - { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, data, pos) } + { <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } pub type CustomsecCombinatorAlias = Mapped, CustomsecCont0>, CustomsecMapper>; @@ -26282,14 +26282,14 @@ pub fn serialize_customsec<'a>(v: { - &&& data@.len() == old(data)@.len() - &&& pos <= usize::MAX - n && pos + n <= data@.len() + &&& final(data)@.len() == old(data)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(data)@.len() &&& n == spec_customsec().spec_serialize(v@).len() - &&& data@ == seq_splice(old(data)@, pos, spec_customsec().spec_serialize(v@)) + &&& final(data)@ == seq_splice(old(data)@, pos, spec_customsec().spec_serialize(v@)) }, { let combinator = customsec(); - <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, data, pos) + <_ as Combinator<'a, &'a [u8], Vec>>::serialize(&combinator, v, &mut *data, pos) } pub fn customsec_len<'a>(v: >>::SType) -> (serialize_len: usize) diff --git a/vest-examples/Cargo.toml b/vest-examples/Cargo.toml index 739ce7d3..bd6c6817 100644 --- a/vest-examples/Cargo.toml +++ b/vest-examples/Cargo.toml @@ -23,7 +23,7 @@ version = "0.1.0" edition = "2021" [workspace.dependencies] -vstd = "0.0.0-2026-03-17-2326" +vstd = "=0.0.0-2026-05-10-0145" # verus_builtin = "=0.0.0-2026-01-11-0057" # verus_builtin_macros = "0.0.0-2025-12-07-0054" #verus_builtin = { git = "https://github.com/verus-lang/verus", branch = "main" } diff --git a/vest-examples/asn1/src/asn1/big_int.rs b/vest-examples/asn1/src/asn1/big_int.rs index 629016e2..3af024c4 100644 --- a/vest-examples/asn1/src/asn1/big_int.rs +++ b/vest-examples/asn1/src/asn1/big_int.rs @@ -177,7 +177,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for BigInt { proof { use_type_invariant(&v); } - new_big_int_inner().serialize(&v.0, data, pos) + new_big_int_inner().serialize(&v.0, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/bit_string.rs b/vest-examples/asn1/src/asn1/bit_string.rs index 3f97cde2..2c05466f 100644 --- a/vest-examples/asn1/src/asn1/bit_string.rs +++ b/vest-examples/asn1/src/asn1/bit_string.rs @@ -244,7 +244,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for BitString { assert(BitStringValue::spec_wf(slice@)); assert(OctetString.wf(slice@)); } - OctetString.serialize(&slice, data, pos) + OctetString.serialize(&slice, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/explicit.rs b/vest-examples/asn1/src/asn1/explicit.rs index 12489533..b0ff8751 100644 --- a/vest-examples/asn1/src/asn1/explicit.rs +++ b/vest-examples/asn1/src/asn1/explicit.rs @@ -95,7 +95,7 @@ impl<'a, T> Combinator<'a, &'a [u8], Vec> for ExplicitTag where #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { - LengthWrapped(&self.1).serialize(v, data, pos) + LengthWrapped(&self.1).serialize(v, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/gen_time.rs b/vest-examples/asn1/src/asn1/gen_time.rs index 14af5a8c..cf57b5f4 100644 --- a/vest-examples/asn1/src/asn1/gen_time.rs +++ b/vest-examples/asn1/src/asn1/gen_time.rs @@ -107,7 +107,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for GeneralizedTime { #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { - LengthWrapped(GeneralizedTimeInner).serialize(v, data, pos) + LengthWrapped(GeneralizedTimeInner).serialize(v, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/ia5_string.rs b/vest-examples/asn1/src/asn1/ia5_string.rs index b838b09a..2147ea41 100644 --- a/vest-examples/asn1/src/asn1/ia5_string.rs +++ b/vest-examples/asn1/src/asn1/ia5_string.rs @@ -112,7 +112,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for IA5String { Refined { inner: UTF8String, predicate: IA5StringPred, - }.serialize(v, data, pos) + }.serialize(v, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/implicit.rs b/vest-examples/asn1/src/asn1/implicit.rs index 081dfbb8..55564e7b 100644 --- a/vest-examples/asn1/src/asn1/implicit.rs +++ b/vest-examples/asn1/src/asn1/implicit.rs @@ -99,7 +99,7 @@ impl<'a, T> Combinator<'a, &'a [u8], Vec> for ImplicitTag where #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { - self.1.serialize(v, data, pos) + self.1.serialize(v, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/integer.rs b/vest-examples/asn1/src/asn1/integer.rs index bfa811ba..2b2b8606 100644 --- a/vest-examples/asn1/src/asn1/integer.rs +++ b/vest-examples/asn1/src/asn1/integer.rs @@ -106,7 +106,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Integer { proof { lemma_min_num_bytes_signed(v); } - new_integer_inner().serialize((min_num_bytes_signed_exec(v) as LengthValue, v), data, pos) + new_integer_inner().serialize((min_num_bytes_signed_exec(v) as LengthValue, v), &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/len.rs b/vest-examples/asn1/src/asn1/len.rs index abbe39ae..13651e3a 100644 --- a/vest-examples/asn1/src/asn1/len.rs +++ b/vest-examples/asn1/src/asn1/len.rs @@ -214,7 +214,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for Length { } data.set(pos, (0x80 + bytes) as u8); - let len = VarUInt(bytes as usize).serialize(v as VarUIntResult, data, pos + 1)?; + let len = VarUInt(bytes as usize).serialize(v as VarUIntResult, &mut *data, pos + 1)?; proof { lemma_min_num_bytes_unsigned(v as VarUIntResult); diff --git a/vest-examples/asn1/src/asn1/len_wrapped.rs b/vest-examples/asn1/src/asn1/len_wrapped.rs index 88e3b969..ad6bbf99 100644 --- a/vest-examples/asn1/src/asn1/len_wrapped.rs +++ b/vest-examples/asn1/src/asn1/len_wrapped.rs @@ -99,7 +99,7 @@ impl<'a, T> Combinator<'a, &'a [u8], Vec> for LengthWrapped where #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { let len = self.0.length(v); - let final_len = new_length_wrapped_inner(&self.0).serialize((len as LengthValue, v), data, pos)?; + let final_len = new_length_wrapped_inner(&self.0).serialize((len as LengthValue, v), &mut *data, pos)?; if pos < data.len() && final_len < data.len() - pos { assert(data@ =~= seq_splice(old(data)@, pos, self@.spec_serialize(v@))); diff --git a/vest-examples/asn1/src/asn1/octet_string.rs b/vest-examples/asn1/src/asn1/octet_string.rs index 6be87ee8..04de441b 100644 --- a/vest-examples/asn1/src/asn1/octet_string.rs +++ b/vest-examples/asn1/src/asn1/octet_string.rs @@ -89,7 +89,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OctetString { #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { let bytes = *v; - new_octet_string_inner().serialize((bytes.len() as LengthValue, &bytes), data, pos) + new_octet_string_inner().serialize((bytes.len() as LengthValue, &bytes), &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/oid.rs b/vest-examples/asn1/src/asn1/oid.rs index 2611e470..20c1b6b9 100644 --- a/vest-examples/asn1/src/asn1/oid.rs +++ b/vest-examples/asn1/src/asn1/oid.rs @@ -236,11 +236,11 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ObjectIdentifier { let mut rest_arcs_clone = Clone::clone(&v.0.0); let rest_arcs = RepeatResult(rest_arcs_clone.split_off(2)); - let len = (U8, Repeat(Base128UInt)).serialize((&first_byte, &rest_arcs), data, pos)?; + let len = (U8, Repeat(Base128UInt)).serialize((&first_byte, &rest_arcs), &mut *data, pos)?; let ghost rest_arcs_spec = rest_arcs@; let length_value: LengthValue = len; - let len2 = new_object_identifier_inner().serialize((length_value, (&first_byte, &rest_arcs)), data, pos)?; + let len2 = new_object_identifier_inner().serialize((length_value, (&first_byte, &rest_arcs)), &mut *data, pos)?; if pos.checked_add(len2).is_some() && pos + len2 <= data.len() { proof { diff --git a/vest-examples/asn1/src/asn1/printable_string.rs b/vest-examples/asn1/src/asn1/printable_string.rs index a0d3b721..9f0e2e8e 100644 --- a/vest-examples/asn1/src/asn1/printable_string.rs +++ b/vest-examples/asn1/src/asn1/printable_string.rs @@ -112,7 +112,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for PrintableString { Refined { inner: UTF8String, predicate: PrintableStringPred, - }.serialize(v, data, pos) + }.serialize(v, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/seq_of.rs b/vest-examples/asn1/src/asn1/seq_of.rs index 93b19014..99104006 100644 --- a/vest-examples/asn1/src/asn1/seq_of.rs +++ b/vest-examples/asn1/src/asn1/seq_of.rs @@ -110,7 +110,7 @@ impl<'a, C> Combinator<'a, &'a [u8], Vec> for SequenceOf where #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { - ExplicitTag(self.tag(), Repeat(&self.0)).serialize(v, data, pos) + ExplicitTag(self.tag(), Repeat(&self.0)).serialize(v, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/tag.rs b/vest-examples/asn1/src/asn1/tag.rs index c6d87bf3..27850e1f 100644 --- a/vest-examples/asn1/src/asn1/tag.rs +++ b/vest-examples/asn1/src/asn1/tag.rs @@ -432,7 +432,7 @@ impl<'a, T> Combinator<'a, &'a [u8], Vec> for ASN1 where self.0.lemma_view_preserves_tag(); } - (ASN1Tag, &self.0).serialize((self.0.tag(), v), data, pos) + (ASN1Tag, &self.0).serialize((self.0.tag(), v), &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/utc_time.rs b/vest-examples/asn1/src/asn1/utc_time.rs index f89fcd41..78758aae 100644 --- a/vest-examples/asn1/src/asn1/utc_time.rs +++ b/vest-examples/asn1/src/asn1/utc_time.rs @@ -96,7 +96,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for UTCTime { } fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { - LengthWrapped(UTCTimeInner).serialize(v, data, pos) + LengthWrapped(UTCTimeInner).serialize(v, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/asn1/utf8_string.rs b/vest-examples/asn1/src/asn1/utf8_string.rs index 4959c5ea..98d7b339 100644 --- a/vest-examples/asn1/src/asn1/utf8_string.rs +++ b/vest-examples/asn1/src/asn1/utf8_string.rs @@ -136,7 +136,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for UTF8String { #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { let s = str_to_utf8(*v); - let n = Length.serialize(s.len() as LengthValue, data, pos)?; + let n = Length.serialize(s.len() as LengthValue, &mut *data, pos)?; if pos.checked_add(n).is_none() { return Err(SerializeError::Other("Size overflow".to_string())); diff --git a/vest-examples/asn1/src/asn1/var_int.rs b/vest-examples/asn1/src/asn1/var_int.rs index 933a9b62..e18f3e0c 100644 --- a/vest-examples/asn1/src/asn1/var_int.rs +++ b/vest-examples/asn1/src/asn1/var_int.rs @@ -1047,7 +1047,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for VarInt { VarUInt::lemma_mask_fits(self.0, v as VarUIntResult); }; - VarUInt(self.0).serialize((v as VarUIntResult) & n_byte_max_unsigned!(self.0), data, pos) + VarUInt(self.0).serialize((v as VarUIntResult) & n_byte_max_unsigned!(self.0), &mut *data, pos) } } diff --git a/vest-examples/asn1/src/common/cached.rs b/vest-examples/asn1/src/common/cached.rs index 968007b5..8473cd52 100644 --- a/vest-examples/asn1/src/common/cached.rs +++ b/vest-examples/asn1/src/common/cached.rs @@ -168,7 +168,7 @@ impl<'a, T> Combinator<'a, &'a [u8], Vec> for Cached where usize, SerializeError, >) { - self.0.serialize(v, data, pos) + self.0.serialize(v, &mut *data, pos) } } diff --git a/vest-examples/asn1/src/common/default.rs b/vest-examples/asn1/src/common/default.rs index e135a8d2..ee59ed5b 100644 --- a/vest-examples/asn1/src/common/default.rs +++ b/vest-examples/asn1/src/common/default.rs @@ -157,9 +157,9 @@ impl<'a, C1, C2> Combinator<'a, &'a [u8], Vec> for Default<, pos: usize) -> (res: Result) { let pair = (&self.1, &self.2); let len = if v.0.polyfill_eq(&self.0.clone().ex_into()) { - self.2.serialize(v.1, data, pos)? + self.2.serialize(v.1, &mut *data, pos)? } else { - pair.serialize((v.0, v.1), data, pos)? + pair.serialize((v.0, v.1), &mut *data, pos)? }; assert(data@ =~= seq_splice(old(data)@, pos, self@.spec_serialize(v@))); diff --git a/vest-examples/asn1/src/common/optional.rs b/vest-examples/asn1/src/common/optional.rs index 41fc44ec..503c08c1 100644 --- a/vest-examples/asn1/src/common/optional.rs +++ b/vest-examples/asn1/src/common/optional.rs @@ -240,8 +240,8 @@ impl<'a, C1, C2> Combinator<'a, &'a [u8], Vec> for Optional where #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { let len = match v { - (OptionDeep::Some(v1), v2) => (&self.0, &self.1).serialize((v1, v2), data, pos), - (OptionDeep::None, v2) => self.1.serialize(v2, data, pos), + (OptionDeep::Some(v1), v2) => (&self.0, &self.1).serialize((v1, v2), &mut *data, pos), + (OptionDeep::None, v2) => self.1.serialize(v2, &mut *data, pos), }?; proof { diff --git a/vest-examples/asn1/src/common/polyfill.rs b/vest-examples/asn1/src/common/polyfill.rs index 132bbf86..63b6adad 100644 --- a/vest-examples/asn1/src/common/polyfill.rs +++ b/vest-examples/asn1/src/common/polyfill.rs @@ -94,7 +94,7 @@ pub fn slice_eq(a: &[T], b: &[T]) -> (res: bool) #[verifier::external_body] pub fn slice_skip_copy(a: &mut [T], skip: usize, b: &[T]) requires old(a)@.len() >= b@.len() + skip - ensures a@ == old(a)@.take(skip as int) + b@ + old(a)@.skip(skip + b.len()) + ensures final(a)@ == old(a)@.take(skip as int) + b@ + old(a)@.skip(skip + b.len()) { (&mut a[skip..skip + b.len()]).copy_from_slice(b) } @@ -208,7 +208,7 @@ pub fn u64_to_string(x: u64) -> (res: String) #[verifier::external_body] #[inline(always)] pub fn u64_to_string_inplace(res: &mut String, x: u64) - ensures res@ == old(res)@ + spec_u64_to_string(x) + ensures final(res)@ == old(res)@ + spec_u64_to_string(x) { write!(res, "{}", x).unwrap(); } @@ -244,8 +244,9 @@ pub fn vec_set(v: &mut Vec, i: usize, x: T) requires 0 <= i < old(v).len(), ensures - v.len() == old(v).len() && (forall|j| 0 <= j < v.len() && j != i ==> v[j] == old(v)[j]) - && v[i as int] == x, + final(v).len() == old(v).len() + && (forall|j| 0 <= j < final(v).len() && j != i ==> final(v)[j] == old(v)[j]) + && final(v)[i as int] == x, { v[i] = x; } @@ -256,10 +257,10 @@ pub fn vec_push_nested(v: &mut Vec>, i: usize, x: T) 0 <= i < old(v)@.len(), ensures - v.len() == old(v).len(), - forall |j| #![trigger v@[j]] 0 <= j < v@.len() ==> { - &&& i == j ==> v@[j]@ == old(v)@[j]@.push(x) - &&& i != j ==> v@[j] == old(v)@[j] + final(v).len() == old(v).len(), + forall |j| #![trigger final(v)@[j]] 0 <= j < final(v)@.len() ==> { + &&& i == j ==> final(v)@[j]@ == old(v)@[j]@.push(x) + &&& i != j ==> final(v)@[j] == old(v)@[j] }, { v[i].push(x); @@ -289,8 +290,8 @@ pub fn vec_init_n(n: usize, v: &T) -> (res: Vec) /// Copied from Verus example pub fn vec_reverse(v: &mut Vec<&T>) ensures - v.len() == old(v).len(), - old(v).deep_view().reverse() =~= v.deep_view(), + final(v).len() == old(v).len(), + old(v).deep_view().reverse() =~= final(v).deep_view(), { let length = v.len(); let ghost v1 = v.deep_view(); @@ -450,9 +451,9 @@ pub fn chars_iter_next<'a>(iter: &mut CharsIter<'a>) -> (res: Option) ensures ({ let raw = spec_chars_iter_str(*old(iter)); let prev_idx = spec_chars_iter_index(*old(iter)); - let new_idx = spec_chars_iter_index(*iter); + let new_idx = spec_chars_iter_index(*final(iter)); - &&& spec_chars_iter_str(*iter) == raw + &&& spec_chars_iter_str(*final(iter)) == raw &&& res matches Some(c) ==> prev_idx < raw.len() && c == raw[prev_idx] && new_idx == prev_idx + 1 &&& res is None <==> new_idx == prev_idx == raw.len() }) @@ -497,7 +498,7 @@ pub fn string_new() -> (res: String) #[verifier::external_body] #[inline(always)] pub fn string_push(s: &mut String, c: char) - ensures s@ == old(s)@.push(c) + ensures final(s)@ == old(s)@.push(c) { s.push(c) } @@ -505,7 +506,7 @@ pub fn string_push(s: &mut String, c: char) #[verifier::external_body] #[inline(always)] pub fn string_push_str(s: &mut String, r: &str) - ensures s@ == old(s)@ + r@ + ensures final(s)@ == old(s)@ + r@ { s.push_str(r) } diff --git a/vest-examples/asn1/src/common/wrapped.rs b/vest-examples/asn1/src/common/wrapped.rs index 4efbda32..1b36a75a 100644 --- a/vest-examples/asn1/src/common/wrapped.rs +++ b/vest-examples/asn1/src/common/wrapped.rs @@ -254,7 +254,7 @@ macro_rules! wrap_combinator_impls { #[inline(always)] fn serialize(&self, v: Self::SType, data: &mut Vec, pos: usize) -> (res: Result) { $(let $field_name: $field_type = self.$field_name;)* - $inner_expr.serialize(v, data, pos) + $inner_expr.serialize(v, &mut *data, pos) } } } diff --git a/vest-examples/repeat/src/lib.rs b/vest-examples/repeat/src/lib.rs index de4541b1..0a49e3ee 100644 --- a/vest-examples/repeat/src/lib.rs +++ b/vest-examples/repeat/src/lib.rs @@ -233,7 +233,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for OpaqueU16Combinator { usize, SerializeError, >) { - <_ as Combinator<&'a [u8], Vec>>::serialize(&self.0, v, data, pos) + <_ as Combinator<&'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } @@ -396,7 +396,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ResponderIdCombinator { usize, SerializeError, >) { - <_ as Combinator<&'a [u8], Vec>>::serialize(&self.0, v, data, pos) + <_ as Combinator<&'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } @@ -507,7 +507,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ResponderIdListListCombinator { usize, SerializeError, >) { - <_ as Combinator<&'a [u8], Vec>>::serialize(&self.0, v, data, pos) + <_ as Combinator<&'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } @@ -736,7 +736,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for ResponderIdListCombinator { usize, SerializeError, >) { - <_ as Combinator<&'a [u8], Vec>>::serialize(&self.0, v, data, pos) + <_ as Combinator<&'a [u8], Vec>>::serialize(&self.0, v, &mut *data, pos) } } diff --git a/vest/Cargo.toml b/vest/Cargo.toml index 17dc3966..c1746cea 100644 --- a/vest/Cargo.toml +++ b/vest/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vest_lib" -version = "0.0.4" +version = "0.0.5" edition = "2021" license = "MIT" description = "VestLib: A library of formally verified parser and serializer combinators" @@ -17,7 +17,7 @@ default = ["std"] std = [] [dependencies] -vstd = "0.0.0-2026-03-17-2326" +vstd = "=0.0.0-2026-05-10-0145" #vstd = { git = "https://github.com/verus-lang/verus", branch = "main" } #verus_builtin = { git = "https://github.com/verus-lang/verus", branch = "main" } diff --git a/vest/src/bitcoin/varint.rs b/vest/src/bitcoin/varint.rs index 3c6ecfc1..edad904f 100644 --- a/vest/src/bitcoin/varint.rs +++ b/vest/src/bitcoin/varint.rs @@ -484,7 +484,7 @@ impl<'a> Combinator<'a, &'a [u8], Vec> for BtcVarint { usize, SerializeError, >) { - btc_varint_inner().serialize(v, data, pos) + btc_varint_inner().serialize(v, &mut *data, pos) } } diff --git a/vest/src/buf_traits.rs b/vest/src/buf_traits.rs index 87bb0db0..744f0588 100644 --- a/vest/src/buf_traits.rs +++ b/vest/src/buf_traits.rs @@ -62,9 +62,9 @@ pub trait VestOutput: View> where I: View> { requires 0 <= i + input@.len() <= old(self)@.len() <= usize::MAX, ensures - self@.len() == old(self)@.len() && self@ == old(self)@.subrange(0, i as int).add( + final(self)@.len() == old(self)@.len() && final(self)@ == old(self)@.subrange(0, i as int).add( input@, - ).add(old(self)@.subrange(i + input@.len(), self@.len() as int)), + ).add(old(self)@.subrange(i + input@.len(), final(self)@.len() as int)), ; } @@ -76,7 +76,7 @@ pub trait VestPublicOutput: VestOutput where I: View> { requires i < old(self)@.len(), ensures - self@ == old(self)@.update(i as int, value), + final(self)@ == old(self)@.update(i as int, value), ; /// Copy `input` to `self` starting at index `i`. (Same as `set_range` but with byte slice input.) @@ -84,9 +84,9 @@ pub trait VestPublicOutput: VestOutput where I: View> { requires 0 <= i + input@.len() <= old(self)@.len() <= usize::MAX, ensures - self@.len() == old(self)@.len() && self@ == old(self)@.subrange(0, i as int).add( + final(self)@.len() == old(self)@.len() && final(self)@ == old(self)@.subrange(0, i as int).add( input@, - ).add(old(self)@.subrange(i + input@.len(), self@.len() as int)), + ).add(old(self)@.subrange(i + input@.len(), final(self)@.len() as int)), ; } diff --git a/vest/src/properties.rs b/vest/src/properties.rs index 9aa82054..51679d7a 100644 --- a/vest/src/properties.rs +++ b/vest/src/properties.rs @@ -283,10 +283,10 @@ pub trait Combinator<'x, I, O>: View where pos <= old(buf)@.len() <= usize::MAX, ensures res matches Ok(n) ==> { - &&& buf@.len() == old(buf)@.len() - &&& pos <= usize::MAX - n && pos + n <= buf@.len() + &&& final(buf)@.len() == old(buf)@.len() + &&& pos <= usize::MAX - n && pos + n <= final(buf)@.len() &&& n == self@.spec_serialize(v@).len() - &&& buf@ == seq_splice(old(buf)@, pos, self@.spec_serialize(v@)) + &&& final(buf)@ == seq_splice(old(buf)@, pos, self@.spec_serialize(v@)) }, ; } diff --git a/vest/src/regular/modifier.rs b/vest/src/regular/modifier.rs index 3cc1cdf2..4cc4bb03 100644 --- a/vest/src/regular/modifier.rs +++ b/vest/src/regular/modifier.rs @@ -656,7 +656,7 @@ impl<'x, I, O, Inner, P> Combinator<'x, I, O> for Refined where fn serialize(&self, v: Self::SType, data: &mut O, pos: usize) -> Result { // we know `v` is well-formed, so we can skip the predicate check - self.inner.serialize(v, data, pos) + self.inner.serialize(v, &mut *data, pos) } } diff --git a/vest/src/regular/repetition.rs b/vest/src/regular/repetition.rs index 73584c5e..71436b78 100644 --- a/vest/src/regular/repetition.rs +++ b/vest/src/regular/repetition.rs @@ -433,7 +433,7 @@ impl Combinator<'x, I, O> for RepeatN where let v = &vs.0[i]; assert(v@ == _vs[i as int]); assert(_vs.take((i + 1) as int).drop_last() == _vs.take(i as int)); // <-- this is the key - let l = self.0.serialize(v, data, pos)?; + let l = self.0.serialize(v, &mut *data, pos)?; pos += l; assert(data@ == seq_splice( old_data, @@ -689,7 +689,7 @@ impl Combinator<'x, I, O> for Repeat where usize, SerializeError, >) { - RepeatN(&self.0, vs.0.len()).serialize(vs, data, pos) + RepeatN(&self.0, vs.0.len()).serialize(vs, &mut *data, pos) } } diff --git a/vest/src/regular/sequence.rs b/vest/src/regular/sequence.rs index 8184bddc..9b776dd2 100644 --- a/vest/src/regular/sequence.rs +++ b/vest/src/regular/sequence.rs @@ -515,7 +515,7 @@ impl<'x, I, O, Fst, Snd> Combinator<'x, I, O> for Preceded where usize, SerializeError, > { - (&self.0, &self.1).serialize(((), v), data, pos) + (&self.0, &self.1).serialize(((), v), &mut *data, pos) } } @@ -627,7 +627,7 @@ impl<'x, I, O, Fst, Snd> Combinator<'x, I, O> for Terminated where usize, SerializeError, > { - (&self.0, &self.1).serialize((v, ()), data, pos) + (&self.0, &self.1).serialize((v, ()), &mut *data, pos) } } diff --git a/vest/src/regular/tag.rs b/vest/src/regular/tag.rs index bdf2b5b4..2bcaa707 100644 --- a/vest/src/regular/tag.rs +++ b/vest/src/regular/tag.rs @@ -218,7 +218,7 @@ impl<'x, const N: usize> Combinator<'x, &'x [u8], Vec> for Tag< usize, SerializeError, > { - self.0.serialize(&self.0.predicate.0.as_slice(), data, pos) + self.0.serialize(&self.0.predicate.0.as_slice(), &mut *data, pos) } } diff --git a/vest/src/regular/uints.rs b/vest/src/regular/uints.rs index 7f39ac7c..fada83f5 100644 --- a/vest/src/regular/uints.rs +++ b/vest/src/regular/uints.rs @@ -403,9 +403,9 @@ pub trait FromToBytes where Self: ViewReflex + core::marker::Sized + Copy { requires old(s)@.len() - pos >= size_of::(), ensures - old(s)@.len() == s@.len(), + old(s)@.len() == final(s)@.len(), self.spec_to_le_bytes().len() == size_of::(), - s@ == seq_splice(old(s)@, pos, self.spec_to_le_bytes()), + final(s)@ == seq_splice(old(s)@, pos, self.spec_to_le_bytes()), ; /// Converts a sequence of bytes to an integer in big-endian byte order. @@ -424,9 +424,9 @@ pub trait FromToBytes where Self: ViewReflex + core::marker::Sized + Copy { requires old(s)@.len() - pos >= size_of::(), ensures - old(s)@.len() == s@.len(), + old(s)@.len() == final(s)@.len(), self.spec_to_be_bytes().len() == size_of::(), - s@ == seq_splice(old(s)@, pos, self.spec_to_be_bytes()), + final(s)@ == seq_splice(old(s)@, pos, self.spec_to_be_bytes()), ; /// Compares two integers for equality. @@ -1004,9 +1004,9 @@ impl u24 { o == self.spec_as_u32(), { let mut bytes = [0;4]; - bytes.set(1, self.0[0]); - bytes.set(2, self.0[1]); - bytes.set(3, self.0[2]); + bytes[1] = self.0[0]; + bytes[2] = self.0[1]; + bytes[3] = self.0[2]; u32::ex_from_be_bytes(bytes.as_slice()) } } @@ -1103,7 +1103,7 @@ impl<'x> Combinator<'x, &[u8], Vec> for U24Le { <_ as Combinator<&[u8], Vec>>::serialize( &Fixed::<3>, &[v.0[2], v.0[1], v.0[0]].as_slice(), - data, + &mut *data, pos, ) } @@ -1203,7 +1203,7 @@ impl<'x> Combinator<'x, &[u8], Vec> for U24Be { usize, SerializeError, >) { - <_ as Combinator<&[u8], Vec>>::serialize(&Fixed::<3>, &v.0.as_slice(), data, pos) + <_ as Combinator<&[u8], Vec>>::serialize(&Fixed::<3>, &v.0.as_slice(), &mut *data, pos) } } diff --git a/vest/src/regular/variant.rs b/vest/src/regular/variant.rs index cb52a8f6..ba093866 100644 --- a/vest/src/regular/variant.rs +++ b/vest/src/regular/variant.rs @@ -380,7 +380,7 @@ impl<'x, I, O, T> Combinator<'x, I, O> for Opt where SerializeError, >) { match &v.0 { - Some(v) => self.0.serialize(v, data, pos), + Some(v) => self.0.serialize(v, &mut *data, pos), None => { if pos <= data.len() { assert(seq_splice(old(data)@, pos, Seq::::empty()) == data@); @@ -595,8 +595,8 @@ impl<'x, I, O, Fst, Snd> Combinator<'x, I, O> for OptThen where usize, SerializeError, >) { - let n = self.0.0.serialize(&v.0, data, pos)?; - let m = self.0.1.serialize(v.1, data, pos + n)?; + let n = self.0.0.serialize(&v.0, &mut *data, pos)?; + let m = self.0.1.serialize(v.1, &mut *data, pos + n)?; Ok(n + m) } } diff --git a/vest/src/utils.rs b/vest/src/utils.rs index ec055cf8..6ec03d34 100644 --- a/vest/src/utils.rs +++ b/vest/src/utils.rs @@ -185,8 +185,8 @@ pub fn vec_u8_extend_from_slice(dest: &mut Vec, src: &[u8]) requires old(dest)@.len() + src@.len() <= usize::MAX, ensures - dest@.len() == old(dest)@.len() + src@.len(), - dest@ == old(dest)@.add(src@), + final(dest)@.len() == old(dest)@.len() + src@.len(), + final(dest)@ == old(dest)@.add(src@), { dest.extend_from_slice(src); } @@ -196,8 +196,8 @@ pub fn set_range<'a>(data: &mut Vec, i: usize, input: &[u8]) requires 0 <= i + input@.len() <= old(data)@.len() <= usize::MAX, ensures - data@.len() == old(data)@.len() - && data@ == seq_splice(old(data)@, i, input@), + final(data)@.len() == old(data)@.len() + && final(data)@ == seq_splice(old(data)@, i, input@), { // data[i..i + input.len()].copy_from_slice(input); let mut j = 0;