Skip to content

Commit

Permalink
Deny bare trait objects in src/libserialize
Browse files Browse the repository at this point in the history
  • Loading branch information
ljedrz committed Jul 12, 2018
1 parent c946c25 commit 0878453
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
16 changes: 8 additions & 8 deletions src/libserialize/json.rs
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ impl From<fmt::Error> for EncoderError {
pub type EncodeResult = Result<(), EncoderError>;
pub type DecodeResult<T> = Result<T, DecoderError>;

fn escape_str(wr: &mut fmt::Write, v: &str) -> EncodeResult {
fn escape_str(wr: &mut dyn fmt::Write, v: &str) -> EncodeResult {
wr.write_str("\"")?;

let mut start = 0;
Expand Down Expand Up @@ -433,11 +433,11 @@ fn escape_str(wr: &mut fmt::Write, v: &str) -> EncodeResult {
Ok(())
}

fn escape_char(writer: &mut fmt::Write, v: char) -> EncodeResult {
fn escape_char(writer: &mut dyn fmt::Write, v: char) -> EncodeResult {
escape_str(writer, v.encode_utf8(&mut [0; 4]))
}

fn spaces(wr: &mut fmt::Write, mut n: usize) -> EncodeResult {
fn spaces(wr: &mut dyn fmt::Write, mut n: usize) -> EncodeResult {
const BUF: &'static str = " ";

while n >= BUF.len() {
Expand All @@ -461,14 +461,14 @@ fn fmt_number_or_null(v: f64) -> string::String {

/// A structure for implementing serialization to JSON.
pub struct Encoder<'a> {
writer: &'a mut (fmt::Write+'a),
writer: &'a mut (dyn fmt::Write+'a),
is_emitting_map_key: bool,
}

impl<'a> Encoder<'a> {
/// Creates a new JSON encoder whose output will be written to the writer
/// specified.
pub fn new(writer: &'a mut fmt::Write) -> Encoder<'a> {
pub fn new(writer: &'a mut dyn fmt::Write) -> Encoder<'a> {
Encoder { writer: writer, is_emitting_map_key: false, }
}
}
Expand Down Expand Up @@ -707,15 +707,15 @@ impl<'a> ::Encoder for Encoder<'a> {
/// Another encoder for JSON, but prints out human-readable JSON instead of
/// compact data
pub struct PrettyEncoder<'a> {
writer: &'a mut (fmt::Write+'a),
writer: &'a mut (dyn fmt::Write+'a),
curr_indent: usize,
indent: usize,
is_emitting_map_key: bool,
}

impl<'a> PrettyEncoder<'a> {
/// Creates a new encoder whose output will be written to the specified writer
pub fn new(writer: &'a mut fmt::Write) -> PrettyEncoder<'a> {
pub fn new(writer: &'a mut dyn fmt::Write) -> PrettyEncoder<'a> {
PrettyEncoder {
writer,
curr_indent: 0,
Expand Down Expand Up @@ -2053,7 +2053,7 @@ impl<T: Iterator<Item=char>> Builder<T> {
}

/// Decodes a json value from an `&mut io::Read`
pub fn from_reader(rdr: &mut Read) -> Result<Json, BuilderError> {
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,
Expand Down
2 changes: 2 additions & 0 deletions src/libserialize/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
Core encoding and decoding interfaces.
*/

#![deny(bare_trait_objects)]

#![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
html_root_url = "https://doc.rust-lang.org/nightly/",
Expand Down

0 comments on commit 0878453

Please sign in to comment.