/src/wasm-tools/crates/wast/src/encode.rs
Line | Count | Source (jump to first uncovered line) |
1 | | pub(crate) trait Encode { |
2 | | fn encode(&self, e: &mut Vec<u8>); |
3 | | } |
4 | | |
5 | | impl<T: Encode + ?Sized> Encode for &'_ T { |
6 | 0 | fn encode(&self, e: &mut Vec<u8>) { |
7 | 0 | T::encode(self, e) |
8 | 0 | } |
9 | | } |
10 | | |
11 | | impl<T: Encode + ?Sized> Encode for Box<T> { |
12 | 388k | fn encode(&self, e: &mut Vec<u8>) { |
13 | 388k | T::encode(self, e) |
14 | 388k | } <alloc::boxed::Box<wast::core::expr::BrOnCastFail> as wast::encode::Encode>::encode Line | Count | Source | 12 | 88 | fn encode(&self, e: &mut Vec<u8>) { | 13 | 88 | T::encode(self, e) | 14 | 88 | } |
<alloc::boxed::Box<wast::core::expr::CallIndirect> as wast::encode::Encode>::encode Line | Count | Source | 12 | 406 | fn encode(&self, e: &mut Vec<u8>) { | 13 | 406 | T::encode(self, e) | 14 | 406 | } |
<alloc::boxed::Box<wast::core::expr::BrOnCast> as wast::encode::Encode>::encode Line | Count | Source | 12 | 234 | fn encode(&self, e: &mut Vec<u8>) { | 13 | 234 | T::encode(self, e) | 14 | 234 | } |
<alloc::boxed::Box<wast::core::expr::BlockType> as wast::encode::Encode>::encode Line | Count | Source | 12 | 387k | fn encode(&self, e: &mut Vec<u8>) { | 13 | 387k | T::encode(self, e) | 14 | 387k | } |
|
15 | | } |
16 | | |
17 | | impl<T: Encode> Encode for [T] { |
18 | 71.6k | fn encode(&self, e: &mut Vec<u8>) { |
19 | 71.6k | self.len().encode(e); |
20 | 380k | for item in self { |
21 | 308k | item.encode(e); |
22 | 308k | } |
23 | 71.6k | } <[wast::token::Index] as wast::encode::Encode>::encode Line | Count | Source | 18 | 5.33k | fn encode(&self, e: &mut Vec<u8>) { | 19 | 5.33k | self.len().encode(e); | 20 | 25.9k | for item in self { | 21 | 20.5k | item.encode(e); | 22 | 20.5k | } | 23 | 5.33k | } |
<[wast::core::types::ValType] as wast::encode::Encode>::encode Line | Count | Source | 18 | 36 | fn encode(&self, e: &mut Vec<u8>) { | 19 | 36 | self.len().encode(e); | 20 | 72 | for item in self { | 21 | 36 | item.encode(e); | 22 | 36 | } | 23 | 36 | } |
<[wast::core::expr::TryTableCatch] as wast::encode::Encode>::encode Line | Count | Source | 18 | 66.2k | fn encode(&self, e: &mut Vec<u8>) { | 19 | 66.2k | self.len().encode(e); | 20 | 354k | for item in self { | 21 | 287k | item.encode(e); | 22 | 287k | } | 23 | 66.2k | } |
Unexecuted instantiation: <[wast::core::expr::Handle] as wast::encode::Encode>::encode Unexecuted instantiation: <[&str] as wast::encode::Encode>::encode Unexecuted instantiation: <[(&str, &str, u32)] as wast::encode::Encode>::encode Unexecuted instantiation: <[(&str, u32)] as wast::encode::Encode>::encode Unexecuted instantiation: <[u8] as wast::encode::Encode>::encode |
24 | | } |
25 | | |
26 | | impl<T: Encode> Encode for Vec<T> { |
27 | 71.6k | fn encode(&self, e: &mut Vec<u8>) { |
28 | 71.6k | <[T]>::encode(self, e) |
29 | 71.6k | } <alloc::vec::Vec<wast::token::Index> as wast::encode::Encode>::encode Line | Count | Source | 27 | 5.33k | fn encode(&self, e: &mut Vec<u8>) { | 28 | 5.33k | <[T]>::encode(self, e) | 29 | 5.33k | } |
<alloc::vec::Vec<wast::core::expr::TryTableCatch> as wast::encode::Encode>::encode Line | Count | Source | 27 | 66.2k | fn encode(&self, e: &mut Vec<u8>) { | 28 | 66.2k | <[T]>::encode(self, e) | 29 | 66.2k | } |
Unexecuted instantiation: <alloc::vec::Vec<wast::core::expr::Handle> as wast::encode::Encode>::encode <alloc::vec::Vec<wast::core::types::ValType> as wast::encode::Encode>::encode Line | Count | Source | 27 | 36 | fn encode(&self, e: &mut Vec<u8>) { | 28 | 36 | <[T]>::encode(self, e) | 29 | 36 | } |
Unexecuted instantiation: <alloc::vec::Vec<&str> as wast::encode::Encode>::encode Unexecuted instantiation: <alloc::vec::Vec<(&str, &str, u32)> as wast::encode::Encode>::encode Unexecuted instantiation: <alloc::vec::Vec<(&str, u32)> as wast::encode::Encode>::encode Unexecuted instantiation: <alloc::vec::Vec<u8> as wast::encode::Encode>::encode |
30 | | } |
31 | | |
32 | | impl Encode for str { |
33 | 0 | fn encode(&self, e: &mut Vec<u8>) { |
34 | 0 | self.len().encode(e); |
35 | 0 | e.extend_from_slice(self.as_bytes()); |
36 | 0 | } |
37 | | } |
38 | | |
39 | | impl Encode for usize { |
40 | 71.6k | fn encode(&self, e: &mut Vec<u8>) { |
41 | 71.6k | assert!(*self <= u32::max_value() as usize); |
42 | 71.6k | (*self as u32).encode(e) |
43 | 71.6k | } |
44 | | } |
45 | | |
46 | | impl Encode for u8 { |
47 | 294k | fn encode(&self, e: &mut Vec<u8>) { |
48 | 294k | e.push(*self); |
49 | 294k | } |
50 | | } |
51 | | |
52 | | impl Encode for u32 { |
53 | 3.49M | fn encode(&self, e: &mut Vec<u8>) { |
54 | 3.49M | leb128::write::unsigned(e, (*self).into()).unwrap(); |
55 | 3.49M | } |
56 | | } |
57 | | |
58 | | impl Encode for i32 { |
59 | 254k | fn encode(&self, e: &mut Vec<u8>) { |
60 | 254k | leb128::write::signed(e, (*self).into()).unwrap(); |
61 | 254k | } |
62 | | } |
63 | | |
64 | | impl Encode for u64 { |
65 | 95.6k | fn encode(&self, e: &mut Vec<u8>) { |
66 | 95.6k | leb128::write::unsigned(e, *self).unwrap(); |
67 | 95.6k | } |
68 | | } |
69 | | |
70 | | impl Encode for i64 { |
71 | 1.15M | fn encode(&self, e: &mut Vec<u8>) { |
72 | 1.15M | leb128::write::signed(e, *self).unwrap(); |
73 | 1.15M | } |
74 | | } |
75 | | |
76 | | impl<T: Encode, U: Encode> Encode for (T, U) { |
77 | 0 | fn encode(&self, e: &mut Vec<u8>) { |
78 | 0 | self.0.encode(e); |
79 | 0 | self.1.encode(e); |
80 | 0 | } |
81 | | } |
82 | | |
83 | | impl<T: Encode, U: Encode, V: Encode> Encode for (T, U, V) { |
84 | 0 | fn encode(&self, e: &mut Vec<u8>) { |
85 | 0 | self.0.encode(e); |
86 | 0 | self.1.encode(e); |
87 | 0 | self.2.encode(e); |
88 | 0 | } |
89 | | } |