pub fn cread_stream<R, T, C>(reader: R, constraint: &C) -> Result<T>where R: BufRead, T: FromStr, <T as FromStr>::Err: Display, C: Constraint<T>,
Read from a BufReader one line, string is parsed into T, then a constraint is applied