Skip to content

Fix of all the clippy warnings and removing of deprecated Error::description method #134

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 3, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/global/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ lazy_static! {
static ref SETTINGS: RwLock<Config> = RwLock::new(Config::default());
}

fn try_main() -> Result<(), Box<Error>> {
fn try_main() -> Result<(), Box<dyn Error>> {
// Set property
SETTINGS.write()?.set("property", 42)?;

Expand Down
2 changes: 1 addition & 1 deletion examples/hierarchical-env/src/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ impl Settings {
// Add in the current environment file
// Default to 'development' env
// Note that this file is _optional_
let env = env::var("RUN_MODE").unwrap_or("development".into());
let env = env::var("RUN_MODE").unwrap_or_else(|_| "development".into());
s.merge(File::with_name(&format!("config/{}", env)).required(false))?;

// Add in a local configuration file
Expand Down
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
Loading