rsa-msg-packets 0.1.7

A helper crate for rsa-messenger-client as well as rsa-messenger-server.
Documentation
use std::{collections::VecDeque, ops::Range};

use anyhow::anyhow;


pub fn vec_to_decque<T>(v: Vec<T>) -> VecDeque<T> {
    let mut r: VecDeque<T> = VecDeque::new();
    for i in v {
        r.push_back(i);
    }

    return r;
}

pub fn decque_to_vec<T>(v: VecDeque<T>) -> Vec<T> {
    let mut r: Vec<T> = Vec::new();
    for i in v {
        r.push(i);
    }

    return r;
}

pub fn extract_vec(range: Range<usize>, v: &mut Vec<u8>) -> anyhow::Result<Vec<u8>> {
    if range.start > v.len() || range.end > v.len() {
        return Err(anyhow!(format!("Could not extract vec with range {:?} as vec is {} long", range, v.len())));
    }

    let splice = v.splice(range, vec![]);
    let out: Vec<u8> = splice.collect();

    return Ok(out);
}