ps_ecc/polynomial/implementations/
as_ref.rs1use crate::Polynomial;
2
3impl AsRef<[u8]> for Polynomial {
4 fn as_ref(&self) -> &[u8] {
5 self.coefficients()
6 }
7}
8
9#[cfg(test)]
10#[allow(clippy::expect_used)]
11mod tests {
12 use crate::Polynomial;
13
14 #[test]
15 fn as_ref_returns_coefficients() {
16 let p = Polynomial::try_from(&[1u8, 2, 3][..]).expect("valid polynomial");
17
18 let slice: &[u8] = p.as_ref();
19
20 assert_eq!(slice, &[1, 2, 3]);
21 }
22
23 #[test]
24 fn as_ref_zero_polynomial() {
25 let p = Polynomial::default();
26
27 let slice: &[u8] = p.as_ref();
28
29 assert_eq!(slice, &[0]);
30 }
31
32 #[test]
33 fn as_ref_returns_trimmed_slice() {
34 let p = Polynomial::try_from(&[1u8, 2, 3, 0, 0][..]).expect("valid polynomial");
36
37 let slice: &[u8] = p.as_ref();
38
39 assert_eq!(slice, &[1, 2, 3]);
40 }
41
42 #[test]
43 fn as_ref_works_with_generic_fn() {
44 fn takes_as_ref(x: impl AsRef<[u8]>) -> usize {
45 x.as_ref().len()
46 }
47
48 let p = Polynomial::try_from(&[1u8, 2, 3, 4, 5][..]).expect("valid polynomial");
49
50 assert_eq!(takes_as_ref(p), 5);
51 }
52}