Drop json::from_reader
Performing UTF-8 decode outside the JSON module makes more sense in almost all cases.
This commit is contained in:
parent
cb18e83e85
commit
0fb2b7a2da
2 changed files with 2 additions and 24 deletions
|
@ -185,8 +185,6 @@ use self::ParserState::*;
|
|||
|
||||
use std::borrow::Cow;
|
||||
use std::collections::{BTreeMap, HashMap};
|
||||
use std::io;
|
||||
use std::io::prelude::*;
|
||||
use std::mem::swap;
|
||||
use std::num::FpCategory as Fp;
|
||||
use std::ops::Index;
|
||||
|
@ -250,7 +248,6 @@ pub enum ErrorCode {
|
|||
pub enum ParserError {
|
||||
/// msg, line, col
|
||||
SyntaxError(ErrorCode, usize, usize),
|
||||
IoError(io::ErrorKind, String),
|
||||
}
|
||||
|
||||
// Builder and Parser have the same errors.
|
||||
|
@ -329,10 +326,6 @@ impl fmt::Display for ErrorCode {
|
|||
}
|
||||
}
|
||||
|
||||
fn io_error_to_error(io: io::Error) -> ParserError {
|
||||
IoError(io.kind(), io.to_string())
|
||||
}
|
||||
|
||||
impl fmt::Display for ParserError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
// FIXME this should be a nicer error
|
||||
|
@ -2163,21 +2156,6 @@ impl<T: Iterator<Item = char>> Builder<T> {
|
|||
}
|
||||
}
|
||||
|
||||
/// Decodes a json value from an `&mut io::Read`
|
||||
pub fn from_reader(rdr: &mut dyn Read) -> Result<Json, BuilderError> {
|
||||
let mut contents = Vec::new();
|
||||
match rdr.read_to_end(&mut contents) {
|
||||
Ok(c) => c,
|
||||
Err(e) => return Err(io_error_to_error(e)),
|
||||
};
|
||||
let s = match str::from_utf8(&contents).ok() {
|
||||
Some(s) => s,
|
||||
_ => return Err(SyntaxError(NotUtf8, 0, 0)),
|
||||
};
|
||||
let mut builder = Builder::new(s.chars());
|
||||
builder.build()
|
||||
}
|
||||
|
||||
/// Decodes a json value from a string
|
||||
pub fn from_str(s: &str) -> Result<Json, BuilderError> {
|
||||
let mut builder = Builder::new(s.chars());
|
||||
|
|
|
@ -2145,8 +2145,8 @@ impl Target {
|
|||
use std::fs;
|
||||
|
||||
fn load_file(path: &Path) -> Result<(Target, TargetWarnings), String> {
|
||||
let contents = fs::read(path).map_err(|e| e.to_string())?;
|
||||
let obj = json::from_reader(&mut &contents[..]).map_err(|e| e.to_string())?;
|
||||
let contents = fs::read_to_string(path).map_err(|e| e.to_string())?;
|
||||
let obj = json::from_str(&contents).map_err(|e| e.to_string())?;
|
||||
Target::from_json(obj)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue