Use 2018 edition idioms

This commit is contained in:
Dirkjan Ochtman 2018-12-07 15:52:26 +01:00 committed by Juan Aguilar
parent d042c5d758
commit 5549f9a3cd
28 changed files with 34 additions and 76 deletions

View File

@ -400,7 +400,7 @@
#![allow(unused_imports)]
#[macro_use]
extern crate askama_derive;
extern crate askama_shared as shared;
use askama_shared as shared;
use std::fs::{self, DirEntry};
use std::io;
@ -415,7 +415,7 @@ pub trait Template {
Ok(buf)
}
/// Renders the template to the given `writer` buffer
fn render_into(&self, writer: &mut std::fmt::Write) -> Result<()>;
fn render_into(&self, writer: &mut dyn std::fmt::Write) -> Result<()>;
/// Helper function to inspect the template's extension
fn extension() -> Option<&'static str>
where
@ -478,7 +478,7 @@ pub mod actix_web {
}
}
fn visit_dirs(dir: &Path, cb: &Fn(&DirEntry)) -> io::Result<()> {
fn visit_dirs(dir: &Path, cb: &dyn Fn(&DirEntry)) -> io::Result<()> {
if dir.is_dir() {
for entry in fs::read_dir(dir)? {
let entry = entry?;

View File

@ -1,7 +1,7 @@
use super::{get_template_source, Context, Heritage};
use crate::input::TemplateInput;
use crate::parser::{Cond, Expr, MatchParameter, MatchVariant, Node, Target, When, WS};
use crate::shared::filters;
use askama_shared::filters;
use proc_macro2::Span;

View File

@ -2,7 +2,7 @@ use proc_macro2::TokenStream;
use quote::ToTokens;
use crate::shared::{Config, Syntax};
use askama_shared::{Config, Syntax};
use std::path::PathBuf;

View File

@ -1,11 +1,8 @@
extern crate askama_shared as shared;
extern crate proc_macro;
#[macro_use]
extern crate nom;
extern crate proc_macro;
extern crate proc_macro2;
#[macro_use]
extern crate quote;
extern crate syn;
mod generator;
mod input;
@ -13,7 +10,7 @@ mod parser;
use crate::input::{Print, Source, TemplateInput};
use crate::parser::{Expr, Macro, Node};
use crate::shared::{read_config_file, Config};
use askama_shared::{read_config_file, Config};
use proc_macro::TokenStream;
use crate::parser::parse;

View File

@ -4,7 +4,7 @@
use nom;
use std::str;
use crate::shared::Syntax;
use askama_shared::Syntax;
#[derive(Debug)]
pub enum Expr<'a> {
@ -771,7 +771,7 @@ pub fn parse<'a>(src: &'a str, syntax: &'a Syntax<'a>) -> Vec<Node<'a>> {
#[cfg(test)]
mod tests {
use crate::shared::Syntax;
use askama_shared::Syntax;
fn check_ws_split(s: &str, res: &(&str, &str, &str)) {
let node = super::split_ws_parts(s.as_bytes());

View File

@ -1,4 +1,3 @@
extern crate askama_escape;
#[macro_use]
extern crate criterion;

View File

@ -35,7 +35,7 @@ impl<T> Display for MarkupDisplay<T>
where
T: Display,
{
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
match *self {
MarkupDisplay::Unsafe(ref t) => escape(&t.to_string()).fmt(f),
MarkupDisplay::Safe(ref t) => t.fmt(f),
@ -43,7 +43,7 @@ where
}
}
pub fn escape(s: &str) -> Escaped {
pub fn escape(s: &str) -> Escaped<'_> {
Escaped {
bytes: s.as_bytes(),
}
@ -64,7 +64,7 @@ pub struct Escaped<'a> {
}
impl<'a> ::std::fmt::Display for Escaped<'a> {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
let mut start = 0;
for (i, b) in self.bytes.iter().enumerate() {
if b.wrapping_sub(b'"') <= FLAG {

View File

@ -49,7 +49,7 @@ impl ErrorTrait for Error {
}
}
fn cause(&self) -> Option<&ErrorTrait> {
fn cause(&self) -> Option<&dyn ErrorTrait> {
match *self {
Error::Fmt(ref err) => err.cause(),
#[cfg(feature = "serde_json")]
@ -60,7 +60,7 @@ impl ErrorTrait for Error {
}
impl Display for Error {
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
Error::Fmt(ref err) => write!(formatter, "formatting error: {}", err),

View File

@ -1,6 +1,6 @@
use error::{Error, Result};
use crate::error::{Error, Result};
use serde::Serialize;
use MarkupDisplay;
use askama_escape::MarkupDisplay;
/// Serialize to JSON (requires `serde_json` feature)
///

View File

@ -97,7 +97,7 @@ pub fn format() {}
///
/// A single newline becomes an HTML line break `<br>` and a new line
/// followed by a blank line becomes a paragraph break `<p>`.
pub fn linebreaks(s: &fmt::Display) -> Result<String> {
pub fn linebreaks(s: &dyn fmt::Display) -> Result<String> {
let s = s.to_string();
let linebroken = s.replace("\n\n", "</p><p>").replace("\n", "<br/>");
@ -105,41 +105,41 @@ pub fn linebreaks(s: &fmt::Display) -> Result<String> {
}
/// Converts all newlines in a piece of plain text to HTML line breaks
pub fn linebreaksbr(s: &fmt::Display) -> Result<String> {
pub fn linebreaksbr(s: &dyn fmt::Display) -> Result<String> {
let s = s.to_string();
Ok(s.replace("\n", "<br/>"))
}
/// Converts to lowercase
pub fn lower(s: &fmt::Display) -> Result<String> {
pub fn lower(s: &dyn fmt::Display) -> Result<String> {
let s = s.to_string();
Ok(s.to_lowercase())
}
/// Alias for the `lower()` filter
pub fn lowercase(s: &fmt::Display) -> Result<String> {
pub fn lowercase(s: &dyn fmt::Display) -> Result<String> {
lower(s)
}
/// Converts to uppercase
pub fn upper(s: &fmt::Display) -> Result<String> {
pub fn upper(s: &dyn fmt::Display) -> Result<String> {
let s = s.to_string();
Ok(s.to_uppercase())
}
/// Alias for the `upper()` filter
pub fn uppercase(s: &fmt::Display) -> Result<String> {
pub fn uppercase(s: &dyn fmt::Display) -> Result<String> {
upper(s)
}
/// Strip leading and trailing whitespace
pub fn trim(s: &fmt::Display) -> Result<String> {
pub fn trim(s: &dyn fmt::Display) -> Result<String> {
let s = s.to_string();
Ok(s.trim().to_owned())
}
/// Limit string length, appends '...' if truncated
pub fn truncate(s: &fmt::Display, len: &usize) -> Result<String> {
pub fn truncate(s: &dyn fmt::Display, len: &usize) -> Result<String> {
let mut s = s.to_string();
if s.len() < *len {
Ok(s)
@ -151,7 +151,7 @@ pub fn truncate(s: &fmt::Display, len: &usize) -> Result<String> {
}
/// Indent lines with `width` spaces
pub fn indent(s: &fmt::Display, width: &usize) -> Result<String> {
pub fn indent(s: &dyn fmt::Display, width: &usize) -> Result<String> {
let s = s.to_string();
let mut indented = String::new();
@ -216,7 +216,7 @@ where
}
/// Capitalize a value. The first character will be uppercase, all others lowercase.
pub fn capitalize(s: &fmt::Display) -> Result<String> {
pub fn capitalize(s: &dyn fmt::Display) -> Result<String> {
let mut s = s.to_string();
match s.get_mut(0..1).map(|s| {
@ -234,7 +234,7 @@ pub fn capitalize(s: &fmt::Display) -> Result<String> {
}
/// Centers the value in a field of a given width
pub fn center(s: &fmt::Display, l: usize) -> Result<String> {
pub fn center(s: &dyn fmt::Display, l: usize) -> Result<String> {
let s = s.to_string();
let len = s.len();
@ -261,7 +261,7 @@ pub fn center(s: &fmt::Display, l: usize) -> Result<String> {
}
/// Count the words in that string
pub fn wordcount(s: &fmt::Display) -> Result<usize> {
pub fn wordcount(s: &dyn fmt::Display) -> Result<usize> {
let s = s.to_string();
Ok(s.split_whitespace().count())

View File

@ -1,14 +1,8 @@
#![cfg_attr(feature = "cargo-clippy", allow(unused_parens))]
extern crate askama_escape;
extern crate humansize;
extern crate num_traits;
extern crate serde;
#[macro_use]
extern crate serde_derive;
#[cfg(feature = "serde_json")]
extern crate serde_json;
extern crate toml;
use toml;
use std::env;
use std::fs;
@ -31,14 +25,14 @@ pub struct Config<'a> {
}
impl<'a> Config<'a> {
pub fn new(s: &str) -> Config {
pub fn new(s: &str) -> Config<'_> {
let root = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
let default_dirs = vec![root.join("templates")];
let mut syntaxes = BTreeMap::new();
syntaxes.insert(DEFAULT_SYNTAX_NAME.to_string(), Syntax::default());
let raw: RawConfig =
let raw: RawConfig<'_> =
toml::from_str(&s).expect(&format!("invalid TOML in {}", CONFIG_FILE_NAME));
let (dirs, default_syntax) = match raw.general {

View File

@ -1,4 +1,3 @@
extern crate askama;
#[macro_use]
extern crate criterion;

View File

@ -1,4 +1,4 @@
extern crate askama;
use askama;
fn main() {
askama::rerun_if_templates_changed();

View File

@ -1,8 +1,4 @@
#![cfg(feature = "actix")]
extern crate actix_web;
extern crate askama;
extern crate bytes;
use actix_web::http::header::CONTENT_TYPE;
use actix_web::test;
use actix_web::HttpMessage;

View File

@ -1,4 +1,3 @@
extern crate askama;
#[cfg(feature = "serde-json")]
#[macro_use]
extern crate serde_json;
@ -48,7 +47,7 @@ mod filters {
Ok(s.replace("oo", "aa").to_string())
}
// for test_nested_filter_ref
pub fn mytrim(s: &::std::fmt::Display) -> ::askama::Result<String> {
pub fn mytrim(s: &dyn (::std::fmt::Display)) -> ::askama::Result<String> {
let s = format!("{}", s);
Ok(s.trim().to_owned())
}

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)] // this will generate the code...

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)]

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)]

View File

@ -1,7 +1,4 @@
#![cfg(feature = "iron")]
extern crate askama;
extern crate iron;
use askama::Template;
use iron::{status, Response};

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)]

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)]

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)]

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)]

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)]

View File

@ -1,7 +1,6 @@
#![cfg(feature = "with-rocket")]
#![feature(proc_macro_hygiene, decl_macro)]
extern crate askama;
#[macro_use]
extern crate rocket;

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
macro_rules! hello {

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
use std::collections::HashMap;

View File

@ -1,5 +1,3 @@
extern crate askama;
use askama::Template;
#[derive(Template)]