Skip to content

Commit dd6bd04

Browse files
Impl DekuWrite for [T] (#416)
- Remove already removed gated feature testing - Add test for [T] See #270
1 parent 1e96f86 commit dd6bd04

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

src/impls/slice.rs

+21-2
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@ where
7070
}
7171
}
7272

73+
impl<Ctx: Copy, T> DekuWrite<Ctx> for [T]
74+
where
75+
T: DekuWrite<Ctx>,
76+
{
77+
fn write(&self, output: &mut BitVec<u8, Msb0>, ctx: Ctx) -> Result<(), DekuError> {
78+
for v in self {
79+
v.write(output, ctx)?;
80+
}
81+
Ok(())
82+
}
83+
}
84+
7385
#[cfg(test)]
7486
mod tests {
7587
use crate::DekuWrite;
@@ -106,7 +118,6 @@ mod tests {
106118
assert_eq!(expected, res_write.into_vec());
107119
}
108120

109-
#[cfg(feature = "const_generics")]
110121
#[rstest(input,endian,expected,expected_rest,
111122
case::normal_le(
112123
[0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 0x77, 0x66].as_ref(),
@@ -139,7 +150,6 @@ mod tests {
139150
assert_eq!(expected, res_read);
140151
}
141152

142-
#[cfg(feature = "const_generics")]
143153
#[rstest(input,endian,expected,
144154
case::normal_le(
145155
[[0xCCDD, 0xAABB], [0x8899, 0x6677]],
@@ -163,4 +173,13 @@ mod tests {
163173
input.write(&mut res_write, endian).unwrap();
164174
assert_eq!(expected, res_write.into_vec());
165175
}
176+
177+
#[test]
178+
fn test_issue270() {
179+
let num = [1, 1];
180+
let mut res_write = bitvec![u8, Msb0;];
181+
num.write(&mut res_write, ()).unwrap();
182+
<[u8]>::write(num.as_ref(), &mut res_write, ()).unwrap();
183+
<&[u8]>::write(&num.as_ref(), &mut res_write, ()).unwrap();
184+
}
166185
}

0 commit comments

Comments
 (0)