rsa_msg_packets/util/
vec.rs1use std::{collections::VecDeque, ops::Range};
2
3use anyhow::anyhow;
4
5
6pub fn vec_to_decque<T>(v: Vec<T>) -> VecDeque<T> {
7 let mut r: VecDeque<T> = VecDeque::new();
8 for i in v {
9 r.push_back(i);
10 }
11
12 return r;
13}
14
15pub fn decque_to_vec<T>(v: VecDeque<T>) -> Vec<T> {
16 let mut r: Vec<T> = Vec::new();
17 for i in v {
18 r.push(i);
19 }
20
21 return r;
22}
23
24pub fn extract_vec(range: Range<usize>, v: &mut Vec<u8>) -> anyhow::Result<Vec<u8>> {
25 if range.start > v.len() || range.end > v.len() {
26 return Err(anyhow!(format!("Could not extract vec with range {:?} as vec is {} long", range, v.len())));
27 }
28
29 let splice = v.splice(range, vec![]);
30 let out: Vec<u8> = splice.collect();
31
32 return Ok(out);
33}