Function with_capacity_safe::vec_with_capacity_safe[][src]

pub fn vec_with_capacity_safe<T>(capacity: usize) -> Result<Vec<T>, WcsError>

Vec::with_capacity(capacity) panics/aborts when the capacity is too large. This is a safer alternative which reports Error using try_reserve_exact.

use with_capacity_safe::{vec_with_capacity_safe, WcsError };

//let's pretend this is an arbitrary number read from a broken file
let number_from_file : usize = 100_000_000_000_000;

//try to create a 100TB Vec
let result : Result<Vec<u8>, _> = vec_with_capacity_safe(number_from_file);

assert!(result.is_err());