Skip to content

Commit

Permalink
General upgrade for clippy fix and remove of deprecated methods for e…
Browse files Browse the repository at this point in the history
…rrors
  • Loading branch information
eisterman committed Mar 14, 2020
1 parent 2c0b201 commit 57fb261
Show file tree
Hide file tree
Showing 18 changed files with 67 additions and 94 deletions.
4 changes: 2 additions & 2 deletions src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ enum ConfigKind {
Mutable {
defaults: HashMap<path::Expression, Value>,
overrides: HashMap<path::Expression, Value>,
sources: Vec<Box<Source + Send + Sync>>,
sources: Vec<Box<dyn Source + Send + Sync>>,
},

// A frozen configuration.
Expand Down Expand Up @@ -212,7 +212,7 @@ impl Config {
}

impl Source for Config {
fn clone_into_box(&self) -> Box<Source + Send + Sync> {
fn clone_into_box(&self) -> Box<dyn Source + Send + Sync> {
Box::new((*self).clone())
}

Expand Down
10 changes: 5 additions & 5 deletions src/de.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ impl<'de> de::Deserializer<'de> for Value {
where
V: de::Visitor<'de>,
{
visitor.visit_enum(EnumAccess{ value: self, name: name, variants: variants })
visitor.visit_enum(EnumAccess{ value: self, name, variants })
}

forward_to_deserialize_any! {
Expand Down Expand Up @@ -241,12 +241,12 @@ struct EnumAccess {
}

impl EnumAccess {
fn variant_deserializer(&self, name: &String) -> Result<StrDeserializer> {
fn variant_deserializer(&self, name: &str) -> Result<StrDeserializer> {
self.variants
.iter()
.find(|&s| s == name)
.find(|&&s| s == name)
.map(|&s| StrDeserializer(s))
.ok_or(self.no_constructor_error(name))
.ok_or_else(|| self.no_constructor_error(name))
}

fn table_deserializer(&self, table: &Table) -> Result<StrDeserializer> {
Expand Down Expand Up @@ -448,7 +448,7 @@ impl<'de> de::Deserializer<'de> for Config {
where
V: de::Visitor<'de>,
{
visitor.visit_enum(EnumAccess{ value: self.cache, name: name, variants: variants })
visitor.visit_enum(EnumAccess{ value: self.cache, name, variants })
}

forward_to_deserialize_any! {
Expand Down
2 changes: 1 addition & 1 deletion src/env.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ impl Default for Environment {
}

impl Source for Environment {
fn clone_into_box(&self) -> Box<Source + Send + Sync> {
fn clone_into_box(&self) -> Box<dyn Source + Send + Sync> {
Box::new((*self).clone())
}

Expand Down
46 changes: 12 additions & 34 deletions src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ pub enum ConfigError {

/// The captured error from attempting to parse the file in its desired format.
/// This is the actual error object from the library used for the parsing.
cause: Box<Error + Send + Sync>,
cause: Box<dyn Error + Send + Sync>,
},

/// Value could not be converted into the requested type.
Expand All @@ -76,7 +76,7 @@ pub enum ConfigError {
Message(String),

/// Unadorned error from a foreign origin.
Foreign(Box<Error + Send + Sync>),
Foreign(Box<dyn Error + Send + Sync>),
}

impl ConfigError {
Expand All @@ -88,9 +88,9 @@ impl ConfigError {
expected: &'static str,
) -> Self {
ConfigError::Type {
origin: origin,
unexpected: unexpected,
expected: expected,
origin,
unexpected,
expected,
key: None,
}
}
Expand All @@ -105,9 +105,9 @@ impl ConfigError {
expected,
..
} => ConfigError::Type {
origin: origin,
unexpected: unexpected,
expected: expected,
origin,
unexpected,
expected,
key: Some(key.into()),
},

Expand Down Expand Up @@ -166,7 +166,9 @@ impl fmt::Debug for ConfigError {
impl fmt::Display for ConfigError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ConfigError::Frozen | ConfigError::PathParse(_) => write!(f, "{}", self.description()),
ConfigError::Frozen => write!(f, "configuration is frozen"),

ConfigError::PathParse(ref kind) => write!(f, "{}", kind.description()),

ConfigError::Message(ref s) => write!(f, "{}", s),

Expand Down Expand Up @@ -208,31 +210,7 @@ impl fmt::Display for ConfigError {
}
}

impl Error for ConfigError {
fn description(&self) -> &str {
match *self {
ConfigError::Frozen => "configuration is frozen",
ConfigError::NotFound(_) => "configuration property not found",
ConfigError::Type { .. } => "invalid type",
ConfigError::Foreign(ref cause) | ConfigError::FileParse { ref cause, .. } => {
cause.description()
}
ConfigError::PathParse(ref kind) => kind.description(),

_ => "configuration error",
}
}

fn cause(&self) -> Option<&Error> {
match *self {
ConfigError::Foreign(ref cause) | ConfigError::FileParse { ref cause, .. } => {
Some(cause.as_ref())
}

_ => None,
}
}
}
impl Error for ConfigError { }

impl de::Error for ConfigError {
fn custom<T: fmt::Display>(msg: T) -> Self {
Expand Down
2 changes: 1 addition & 1 deletion src/file/format/hjson.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use value::{Value, ValueKind};
pub fn parse(
uri: Option<&String>,
text: &str,
) -> Result<HashMap<String, Value>, Box<Error + Send + Sync>> {
) -> Result<HashMap<String, Value>, Box<dyn Error + Send + Sync>> {
// Parse a JSON object value from the text
// TODO: Have a proper error fire if the root of a file is ever not a Table
let value = from_hjson_value(uri, &serde_hjson::from_str(text)?);
Expand Down
2 changes: 1 addition & 1 deletion src/file/format/ini.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use value::{Value, ValueKind};
pub fn parse(
uri: Option<&String>,
text: &str,
) -> Result<HashMap<String, Value>, Box<Error + Send + Sync>> {
) -> Result<HashMap<String, Value>, Box<dyn Error + Send + Sync>> {
let mut map: HashMap<String, Value> = HashMap::new();
let i = Ini::load_from_str(text)?;
for (sec, prop) in i.iter() {
Expand Down
2 changes: 1 addition & 1 deletion src/file/format/json.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use value::{Value, ValueKind};
pub fn parse(
uri: Option<&String>,
text: &str,
) -> Result<HashMap<String, Value>, Box<Error + Send + Sync>> {
) -> Result<HashMap<String, Value>, Box<dyn Error + Send + Sync>> {
// Parse a JSON object value from the text
// TODO: Have a proper error fire if the root of a file is ever not a Table
let value = from_json_value(uri, &serde_json::from_str(text)?);
Expand Down
10 changes: 5 additions & 5 deletions src/file/format/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,22 +72,22 @@ lazy_static! {
impl FileFormat {
// TODO: pub(crate)
#[doc(hidden)]
pub fn extensions(&self) -> &'static Vec<&'static str> {
pub fn extensions(self) -> &'static Vec<&'static str> {
// It should not be possible for this to fail
// A FileFormat would need to be declared without being added to the
// ALL_EXTENSIONS map.
ALL_EXTENSIONS.get(self).unwrap()
ALL_EXTENSIONS.get(&self).unwrap()
}

// TODO: pub(crate)
#[doc(hidden)]
#[allow(unused_variables)]
pub fn parse(
&self,
self,
uri: Option<&String>,
text: &str,
) -> Result<HashMap<String, Value>, Box<Error + Send + Sync>> {
match *self {
) -> Result<HashMap<String, Value>, Box<dyn Error + Send + Sync>> {
match self {
#[cfg(feature = "toml")]
FileFormat::Toml => toml::parse(uri, text),

Expand Down
2 changes: 1 addition & 1 deletion src/file/format/toml.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use value::{Value, ValueKind};
pub fn parse(
uri: Option<&String>,
text: &str,
) -> Result<HashMap<String, Value>, Box<Error + Send + Sync>> {
) -> Result<HashMap<String, Value>, Box<dyn Error + Send + Sync>> {
// Parse a TOML value from the provided text
// TODO: Have a proper error fire if the root of a file is ever not a Table
let value = from_toml_value(uri, &toml::from_str(text)?);
Expand Down
2 changes: 1 addition & 1 deletion src/file/format/yaml.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use yaml_rust as yaml;
pub fn parse(
uri: Option<&String>,
text: &str,
) -> Result<HashMap<String, Value>, Box<Error + Send + Sync>> {
) -> Result<HashMap<String, Value>, Box<dyn Error + Send + Sync>> {
// Parse a YAML object from file
let mut docs = yaml::YamlLoader::load_from_str(text)?;
let root = match docs.len() {
Expand Down
6 changes: 3 additions & 3 deletions src/file/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ where
T: 'static,
T: Sync + Send,
{
fn clone_into_box(&self) -> Box<Source + Send + Sync> {
fn clone_into_box(&self) -> Box<dyn Source + Send + Sync> {
Box::new((*self).clone())
}

Expand All @@ -120,8 +120,8 @@ where
format
.parse(uri.as_ref(), &contents)
.map_err(|cause| ConfigError::FileParse {
uri: uri,
cause: cause,
uri,
cause,
})
}
}
8 changes: 4 additions & 4 deletions src/file/source/file.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ pub struct FileSourceFile {

impl FileSourceFile {
pub fn new(name: PathBuf) -> FileSourceFile {
FileSourceFile { name: name }
FileSourceFile { name }
}

fn find_file(
&self,
format_hint: Option<FileFormat>,
) -> Result<(PathBuf, FileFormat), Box<Error + Send + Sync>> {
) -> Result<(PathBuf, FileFormat), Box<dyn Error + Send + Sync>> {
// First check for an _exact_ match
let mut filename = env::current_dir()?.as_path().join(self.name.clone());
if filename.is_file() {
Expand Down Expand Up @@ -91,7 +91,7 @@ impl FileSource for FileSourceFile {
fn resolve(
&self,
format_hint: Option<FileFormat>,
) -> Result<(Option<String>, String, FileFormat), Box<Error + Send + Sync>> {
) -> Result<(Option<String>, String, FileFormat), Box<dyn Error + Send + Sync>> {
// Find file
let (filename, format) = self.find_file(format_hint)?;

Expand All @@ -103,7 +103,7 @@ impl FileSource for FileSourceFile {
};

// Read contents from file
let mut file = fs::File::open(filename.clone())?;
let mut file = fs::File::open(filename)?;
let mut text = String::new();
file.read_to_string(&mut text)?;

Expand Down
2 changes: 1 addition & 1 deletion src/file/source/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ pub trait FileSource: Debug + Clone {
fn resolve(
&self,
format_hint: Option<FileFormat>,
) -> Result<(Option<String>, String, FileFormat), Box<Error + Send + Sync>>;
) -> Result<(Option<String>, String, FileFormat), Box<dyn Error + Send + Sync>>;
}
2 changes: 1 addition & 1 deletion src/file/source/string.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ impl FileSource for FileSourceString {
fn resolve(
&self,
format_hint: Option<FileFormat>,
) -> Result<(Option<String>, String, FileFormat), Box<Error + Send + Sync>> {
) -> Result<(Option<String>, String, FileFormat), Box<dyn Error + Send + Sync>> {
Ok((
None,
self.0.clone(),
Expand Down
23 changes: 9 additions & 14 deletions src/path/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ impl Expression {
},

Expression::Subscript(ref expr, index) => {
let mut do_again = false;
match expr.get_mut_forcibly(root) {
Some(value) => {
match value.kind {
Expand Down Expand Up @@ -183,7 +182,7 @@ impl Expression {
}
}

pub fn set<'a>(&self, root: &'a mut Value, value: Value) {
pub fn set(&self, root: &mut Value, value: Value) {
match *self {
Expression::Identifier(ref id) => {
// Ensure that root is a table
Expand Down Expand Up @@ -244,20 +243,16 @@ impl Expression {
_ => *parent = Vec::<Value>::new().into(),
}

match parent.kind {
ValueKind::Array(ref mut array) => {
let uindex = sindex_to_uindex(index, array.len());
if uindex >= array.len() {
array.resize(
(uindex + 1) as usize,
Value::new(None, ValueKind::Nil),
);
}

array[uindex] = value.clone();
if let ValueKind::Array(ref mut array) = parent.kind {
let uindex = sindex_to_uindex(index, array.len());
if uindex >= array.len() {
array.resize(
(uindex + 1) as usize,
Value::new(None, ValueKind::Nil),
);
}

_ => (),
array[uindex] = value;
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/ser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ impl ConfigSerializer {
self.keys
.get_mut(len - 1)
.map(|pair| pair.1 = pair.1.map(|i| i + 1).or(Some(0)))
.ok_or(ConfigError::Message(format!(
.ok_or_else(|| ConfigError::Message(format!(
"last key is not found in {} keys",
len
)))
Expand Down
12 changes: 6 additions & 6 deletions src/source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use value::{Value, ValueKind};

/// Describes a generic _source_ of configuration properties.
pub trait Source: Debug {
fn clone_into_box(&self) -> Box<Source + Send + Sync>;
fn clone_into_box(&self) -> Box<dyn Source + Send + Sync>;

/// Collect all configuration properties available from this source and return
/// a HashMap.
Expand Down Expand Up @@ -35,14 +35,14 @@ pub trait Source: Debug {
}
}

impl Clone for Box<Source + Send + Sync> {
fn clone(&self) -> Box<Source + Send + Sync> {
impl Clone for Box<dyn Source + Send + Sync> {
fn clone(&self) -> Box<dyn Source + Send + Sync> {
self.clone_into_box()
}
}

impl Source for Vec<Box<Source + Send + Sync>> {
fn clone_into_box(&self) -> Box<Source + Send + Sync> {
impl Source for Vec<Box<dyn Source + Send + Sync>> {
fn clone_into_box(&self) -> Box<dyn Source + Send + Sync> {
Box::new((*self).clone())
}

Expand All @@ -67,7 +67,7 @@ where
T: Clone,
T: 'static,
{
fn clone_into_box(&self) -> Box<Source + Send + Sync> {
fn clone_into_box(&self) -> Box<dyn Source + Send + Sync> {
Box::new((*self).clone())
}

Expand Down
Loading

0 comments on commit 57fb261

Please sign in to comment.