Migrate all examples to Rust 2018.

This commit is contained in:
Jeb Rosen 2019-06-12 19:41:29 -07:00 committed by Sergio Benitez
parent 2315171971
commit d9f989a496
70 changed files with 103 additions and 95 deletions

View File

@ -2,6 +2,7 @@
name = "config"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,5 +1,3 @@
extern crate rocket;
// This example's illustration is the Rocket.toml file.
fn main() {
rocket::ignite().launch();

View File

@ -7,8 +7,8 @@ use rocket::local::Client;
struct LocalConfig(Config);
#[get("/check_config")]
fn check_config(config: State<LocalConfig>) -> Option<()> {
let environment = match ::std::env::var("ROCKET_ENV") {
fn check_config(config: State<'_, LocalConfig>) -> Option<()> {
let environment = match std::env::var("ROCKET_ENV") {
Ok(name) => name,
Err(_) => return None
};
@ -52,7 +52,7 @@ fn check_config(config: State<LocalConfig>) -> Option<()> {
pub fn test_config(environment: Environment) {
// Manually set the config environment variable. Rocket will initialize the
// environment in `ignite()`. We'll read this back in the handler to config.
::std::env::set_var("ROCKET_ENV", environment.to_string());
std::env::set_var("ROCKET_ENV", environment.to_string());
let rocket = rocket::ignite()
.attach(AdHoc::on_attach("Local Config", |rocket| {

View File

@ -2,6 +2,7 @@
name = "content_types"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,7 +2,6 @@
#[macro_use] extern crate rocket;
#[macro_use] extern crate serde_derive;
extern crate serde_json;
#[cfg(test)] mod tests;
@ -42,7 +41,7 @@ fn post_hello(age: u8, name_data: Data) -> io::Result<content::Json<String>> {
}
#[catch(404)]
fn not_found(request: &Request) -> content::Html<String> {
fn not_found(request: &Request<'_>) -> content::Html<String> {
let html = match request.format() {
Some(ref mt) if !mt.is_json() && !mt.is_plain() => {
format!("<p>'{}' requests are not supported.</p>", mt)

View File

@ -1,5 +1,3 @@
use super::rocket;
use super::serde_json;
use super::Person;
use rocket::http::{Accept, ContentType, Header, MediaType, Method, Status};
use rocket::local::Client;

View File

@ -2,6 +2,7 @@
name = "cookies"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,7 +1,6 @@
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
extern crate rocket_contrib;
#[cfg(test)]
mod tests;
@ -19,13 +18,13 @@ struct Message {
}
#[post("/submit", data = "<message>")]
fn submit(mut cookies: Cookies, message: Form<Message>) -> Redirect {
fn submit(mut cookies: Cookies<'_>, message: Form<Message>) -> Redirect {
cookies.add(Cookie::new("message", message.into_inner().message));
Redirect::to("/")
}
#[get("/")]
fn index(cookies: Cookies) -> Template {
fn index(cookies: Cookies<'_>) -> Template {
let cookie = cookies.get("message");
let mut context = HashMap::new();
if let Some(ref cookie) = cookie {

View File

@ -2,6 +2,7 @@
name = "errors"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -12,7 +12,7 @@ fn hello(name: String, age: i8) -> String {
}
#[catch(404)]
fn not_found(req: &rocket::Request) -> content::Html<String> {
fn not_found(req: &rocket::Request<'_>) -> content::Html<String> {
content::Html(format!("<p>Sorry, but '{}' is not a valid path!</p>
<p>Try visiting /hello/&lt;name&gt;/&lt;age&gt; instead.</p>",
req.uri()))

View File

@ -1,4 +1,3 @@
use super::rocket;
use rocket::local::Client;
use rocket::http::Status;

View File

@ -2,6 +2,7 @@
name = "fairings"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -27,7 +27,7 @@ impl Fairing for Counter {
}
}
fn on_request(&self, request: &mut Request, _: &Data) {
fn on_request(&self, request: &mut Request<'_>, _: &Data) {
if request.method() == Method::Get {
self.get.fetch_add(1, Ordering::Relaxed);
} else if request.method() == Method::Post {
@ -35,7 +35,7 @@ impl Fairing for Counter {
}
}
fn on_response(&self, request: &Request, response: &mut Response) {
fn on_response(&self, request: &Request<'_>, response: &mut Response<'_>) {
if response.status() != Status::NotFound {
return
}
@ -58,7 +58,7 @@ fn hello() -> &'static str {
}
#[get("/token")]
fn token(token: State<Token>) -> String {
fn token(token: State<'_, Token>) -> String {
format!("{}", token.0)
}

View File

@ -2,6 +2,7 @@
name = "form_kitchen_sink"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -28,7 +28,7 @@ struct FormInput<'r> {
}
#[post("/", data = "<sink>")]
fn sink(sink: Result<Form<FormInput>, FormError>) -> String {
fn sink(sink: Result<Form<FormInput<'_>>, FormError<'_>>) -> String {
match sink {
Ok(form) => format!("{:?}", &*form),
Err(FormDataError::Io(_)) => format!("Form input was invalid UTF-8."),

View File

@ -5,7 +5,7 @@ use rocket::local::Client;
use rocket::http::ContentType;
impl fmt::Display for FormOption {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
FormOption::A => write!(f, "a"),
FormOption::B => write!(f, "b"),
@ -23,14 +23,14 @@ fn assert_form_eq(client: &Client, form_str: &str, expected: String) {
assert_eq!(res.body_string(), Some(expected));
}
fn assert_valid_form(client: &Client, input: &FormInput) {
fn assert_valid_form(client: &Client, input: &FormInput<'_>) {
let f = format!("checkbox={}&number={}&type={}&password={}&textarea={}&select={}",
input.checkbox, input.number, input.radio, input.password,
input.text_area, input.select);
assert_form_eq(client, &f, format!("{:?}", input));
}
fn assert_valid_raw_form(client: &Client, form_str: &str, input: &FormInput) {
fn assert_valid_raw_form(client: &Client, form_str: &str, input: &FormInput<'_>) {
assert_form_eq(client, form_str, format!("{:?}", input));
}
@ -176,7 +176,7 @@ fn check_structurally_invalid_forms() {
fn check_bad_utf8() {
let client = Client::new(rocket()).unwrap();
unsafe {
let bad_str = ::std::str::from_utf8_unchecked(b"a=\xff");
let bad_str = std::str::from_utf8_unchecked(b"a=\xff");
assert_form_eq(&client, bad_str, "Form input was invalid UTF-8.".into());
}
}

View File

@ -2,6 +2,7 @@
name = "form_validation"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -51,7 +51,7 @@ impl<'v> FromFormValue<'v> for AdultAge {
}
#[post("/login", data = "<user>")]
fn login(user: Form<UserLogin>) -> Result<Redirect, String> {
fn login(user: Form<UserLogin<'_>>) -> Result<Redirect, String> {
if let Err(e) = user.age {
return Err(format!("Age is invalid: {}", e));
}

View File

@ -2,6 +2,7 @@
name = "handlebars_templates"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,7 +2,6 @@
#[macro_use] extern crate rocket;
#[macro_use] extern crate serde_derive;
extern crate rocket_contrib;
#[cfg(test)] mod tests;
@ -10,8 +9,6 @@ use rocket::Request;
use rocket::response::Redirect;
use rocket_contrib::templates::{Template, handlebars};
use handlebars::{Helper, Handlebars, Context, RenderContext, Output, HelperResult, JsonRender};
#[derive(Serialize)]
struct TemplateContext {
title: &'static str,
@ -47,18 +44,20 @@ fn about() -> Template {
}
#[catch(404)]
fn not_found(req: &Request) -> Template {
fn not_found(req: &Request<'_>) -> Template {
let mut map = std::collections::HashMap::new();
map.insert("path", req.uri().path());
Template::render("error/404", &map)
}
use self::handlebars::{Helper, Handlebars, Context, RenderContext, Output, HelperResult, JsonRender};
fn wow_helper(
h: &Helper,
h: &Helper<'_, '_>,
_: &Handlebars,
_: &Context,
_: &mut RenderContext,
out: &mut Output
_: &mut RenderContext<'_>,
out: &mut dyn Output
) -> HelperResult {
if let Some(param) = h.param(0) {
out.write("<b><i>")?;

View File

@ -16,7 +16,7 @@ macro_rules! dispatch {
fn test_root() {
// Check that the redirect works.
for method in &[Get, Head] {
dispatch!(*method, "/", |_: &Client, mut response: LocalResponse| {
dispatch!(*method, "/", |_: &Client, mut response: LocalResponse<'_>| {
assert_eq!(response.status(), Status::SeeOther);
assert!(response.body().is_none());
@ -27,8 +27,8 @@ fn test_root() {
// Check that other request methods are not accepted (and instead caught).
for method in &[Post, Put, Delete, Options, Trace, Connect, Patch] {
dispatch!(*method, "/", |client: &Client, mut response: LocalResponse| {
let mut map = ::std::collections::HashMap::new();
dispatch!(*method, "/", |client: &Client, mut response: LocalResponse<'_>| {
let mut map = std::collections::HashMap::new();
map.insert("path", "/");
let expected = Template::show(client.rocket(), "error/404", &map).unwrap();
@ -41,7 +41,7 @@ fn test_root() {
#[test]
fn test_name() {
// Check that the /hello/<name> route works.
dispatch!(Get, "/hello/Jack%20Daniels", |client: &Client, mut response: LocalResponse| {
dispatch!(Get, "/hello/Jack%20Daniels", |client: &Client, mut response: LocalResponse<'_>| {
let context = TemplateContext {
title: "Hello",
name: Some("Jack Daniels".into()),
@ -58,8 +58,8 @@ fn test_name() {
#[test]
fn test_404() {
// Check that the error catcher works.
dispatch!(Get, "/hello/", |client: &Client, mut response: LocalResponse| {
let mut map = ::std::collections::HashMap::new();
dispatch!(Get, "/hello/", |client: &Client, mut response: LocalResponse<'_>| {
let mut map = std::collections::HashMap::new();
map.insert("path", "/hello/");
let expected = Template::show(client.rocket(), "error/404", &map).unwrap();

View File

@ -2,8 +2,8 @@
name = "hello_2018"
version = "0.0.0"
workspace = "../../"
publish = false
edition = "2018"
publish = false
[dependencies]
rocket = { path = "../../core/lib" }

View File

@ -2,6 +2,7 @@
name = "hello_person"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,4 +1,3 @@
use super::rocket;
use rocket::local::Client;
use rocket::http::Status;

View File

@ -2,6 +2,7 @@
name = "hello_world"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,4 +1,3 @@
use super::rocket;
use rocket::local::Client;
#[test]

View File

@ -2,6 +2,7 @@
name = "json"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -26,7 +26,7 @@ struct Message {
// TODO: This example can be improved by using `route` with multiple HTTP verbs.
#[post("/<id>", format = "json", data = "<message>")]
fn new(id: ID, message: Json<Message>, map: State<MessageMap>) -> JsonValue {
fn new(id: ID, message: Json<Message>, map: State<'_, MessageMap>) -> JsonValue {
let mut hashmap = map.lock().expect("map lock.");
if hashmap.contains_key(&id) {
json!({
@ -40,7 +40,7 @@ fn new(id: ID, message: Json<Message>, map: State<MessageMap>) -> JsonValue {
}
#[put("/<id>", format = "json", data = "<message>")]
fn update(id: ID, message: Json<Message>, map: State<MessageMap>) -> Option<JsonValue> {
fn update(id: ID, message: Json<Message>, map: State<'_, MessageMap>) -> Option<JsonValue> {
let mut hashmap = map.lock().unwrap();
if hashmap.contains_key(&id) {
hashmap.insert(id, message.0.contents);
@ -51,7 +51,7 @@ fn update(id: ID, message: Json<Message>, map: State<MessageMap>) -> Option<Json
}
#[get("/<id>", format = "json")]
fn get(id: ID, map: State<MessageMap>) -> Option<Json<Message>> {
fn get(id: ID, map: State<'_, MessageMap>) -> Option<Json<Message>> {
let hashmap = map.lock().unwrap();
hashmap.get(&id).map(|contents| {
Json(Message {

View File

@ -1,4 +1,4 @@
use rocket;
use crate::rocket;
use rocket::local::Client;
use rocket::http::{Status, ContentType};

View File

@ -2,6 +2,7 @@
name = "managed_queue"
version = "0.0.0"
workspace = "../.."
edition = "2018"
publish = false
[dependencies]

View File

@ -1,7 +1,6 @@
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
extern crate crossbeam;
#[cfg(test)] mod tests;
@ -11,12 +10,12 @@ use crossbeam::queue::SegQueue;
struct LogChannel(SegQueue<String>);
#[put("/push?<event>")]
fn push(event: String, queue: State<LogChannel>) {
fn push(event: String, queue: State<'_, LogChannel>) {
queue.0.push(event);
}
#[get("/pop")]
fn pop(queue: State<LogChannel>) -> Option<String> {
fn pop(queue: State<'_, LogChannel>) -> Option<String> {
queue.0.pop().ok()
}

View File

@ -2,6 +2,7 @@
name = "manual_routes"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,6 +2,7 @@
name = "msgpack"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,7 +2,6 @@
#[macro_use] extern crate rocket;
#[macro_use] extern crate serde_derive;
extern crate rocket_contrib;
#[cfg(test)] mod tests;
@ -20,7 +19,7 @@ fn get(id: usize) -> MsgPack<Message<'static>> {
}
#[post("/", data = "<data>", format = "msgpack")]
fn create(data: MsgPack<Message>) -> String {
fn create(data: MsgPack<Message<'_>>) -> String {
data.contents.to_string()
}

View File

@ -1,4 +1,4 @@
use rocket;
use crate::rocket;
use rocket::local::Client;
use rocket::http::{Status, ContentType};

View File

@ -2,6 +2,7 @@
name = "optional_redirect"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,4 +1,3 @@
use super::rocket;
use rocket::local::Client;
use rocket::http::Status;

View File

@ -2,6 +2,7 @@
name = "pastebin"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,7 +1,6 @@
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
extern crate rand;
mod paste_id;
#[cfg(test)] mod tests;
@ -13,7 +12,7 @@ use std::path::Path;
use rocket::Data;
use rocket::response::content;
use paste_id::PasteID;
use crate::paste_id::PasteID;
const HOST: &str = "http://localhost:8000";
const ID_LENGTH: usize = 3;
@ -29,7 +28,7 @@ fn upload(paste: Data) -> io::Result<String> {
}
#[get("/<id>")]
fn retrieve(id: PasteID) -> Option<content::Plain<File>> {
fn retrieve(id: PasteID<'_>) -> Option<content::Plain<File>> {
let filename = format!("upload/{id}", id = id);
File::open(&filename).map(|f| content::Plain(f)).ok()
}

View File

@ -28,7 +28,7 @@ impl<'a> PasteID<'a> {
}
impl<'a> fmt::Display for PasteID<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.0)
}
}

View File

@ -2,6 +2,7 @@
name = "query_params"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -11,12 +11,12 @@ macro_rules! run_test {
#[test]
fn age_and_name_params() {
run_test!("?age=10&name=john", |mut response: Response| {
run_test!("?age=10&name=john", |mut response: Response<'_>| {
assert_eq!(response.body_string(),
Some("Hello, 10 year old named john!".into()));
});
run_test!("?age=20&name=john", |mut response: Response| {
run_test!("?age=20&name=john", |mut response: Response<'_>| {
assert_eq!(response.body_string(),
Some("20 years old? Hi, john!".into()));
});
@ -24,12 +24,12 @@ fn age_and_name_params() {
#[test]
fn age_param_only() {
run_test!("?age=10", |mut response: Response| {
run_test!("?age=10", |mut response: Response<'_>| {
assert_eq!(response.body_string(),
Some("We're gonna need a name, and only a name.".into()));
});
run_test!("?age=20", |mut response: Response| {
run_test!("?age=20", |mut response: Response<'_>| {
assert_eq!(response.body_string(),
Some("We're gonna need a name, and only a name.".into()));
});
@ -37,19 +37,19 @@ fn age_param_only() {
#[test]
fn name_param_only() {
run_test!("?name=John", |mut response: Response| {
run_test!("?name=John", |mut response: Response<'_>| {
assert_eq!(response.body_string(), Some("Hello John!".into()));
});
}
#[test]
fn no_params() {
run_test!("", |mut response: Response| {
run_test!("", |mut response: Response<'_>| {
assert_eq!(response.body_string(),
Some("We're gonna need a name, and only a name.".into()));
});
run_test!("?", |mut response: Response| {
run_test!("?", |mut response: Response<'_>| {
assert_eq!(response.body_string(),
Some("We're gonna need a name, and only a name.".into()));
});
@ -57,12 +57,12 @@ fn no_params() {
#[test]
fn extra_params() {
run_test!("?age=20&name=Bob&extra", |mut response: Response| {
run_test!("?age=20&name=Bob&extra", |mut response: Response<'_>| {
assert_eq!(response.body_string(),
Some("20 years old? Hi, Bob!".into()));
});
run_test!("?age=30&name=Bob&extra", |mut response: Response| {
run_test!("?age=30&name=Bob&extra", |mut response: Response<'_>| {
assert_eq!(response.body_string(),
Some("We're gonna need a name, and only a name.".into()));
});
@ -70,7 +70,7 @@ fn extra_params() {
#[test]
fn wrong_path() {
run_test!("/other?age=20&name=Bob", |response: Response| {
run_test!("/other?age=20&name=Bob", |response: Response<'_>| {
assert_eq!(response.status(), Status::NotFound);
});
}

View File

@ -2,6 +2,7 @@
name = "ranking"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,4 +1,3 @@
use super::rocket;
use rocket::local::Client;
fn test(uri: &str, expected: String) {

View File

@ -2,6 +2,7 @@
name = "raw_sqlite"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,7 +1,7 @@
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
extern crate rusqlite;
use rusqlite::types::ToSql;
#[cfg(test)] mod tests;
@ -25,7 +25,7 @@ fn init_database(conn: &Connection) {
}
#[get("/")]
fn hello(db_conn: State<DbConn>) -> Result<String, Error> {
fn hello(db_conn: State<'_, DbConn>) -> Result<String, Error> {
db_conn.lock()
.expect("db connection lock")
.query_row("SELECT name FROM entries WHERE id = 0",

View File

@ -2,6 +2,7 @@
name = "raw_upload"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,6 +2,7 @@
name = "redirect"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,4 +1,3 @@
use super::rocket;
use rocket::local::Client;
use rocket::http::Status;

View File

@ -2,6 +2,7 @@
name = "request_guard"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,6 +2,7 @@
name = "request_local_state"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -22,7 +22,7 @@ impl<'a, 'r> FromRequest<'a, 'r> for Guard1 {
type Error = ();
fn from_request(req: &'a Request<'r>) -> request::Outcome<Self, ()> {
let atomics = req.guard::<State<Atomics>>()?;
let atomics = req.guard::<State<'_, Atomics>>()?;
atomics.uncached.fetch_add(1, Ordering::Relaxed);
req.local_cache(|| atomics.cached.fetch_add(1, Ordering::Relaxed));

View File

@ -2,6 +2,7 @@
name = "session"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,7 +1,6 @@
#![feature(proc_macro_hygiene, decl_macro, never_type)]
#[macro_use] extern crate rocket;
extern crate rocket_contrib;
#[cfg(test)] mod tests;
@ -35,7 +34,7 @@ impl<'a, 'r> FromRequest<'a, 'r> for User {
}
#[post("/login", data = "<login>")]
fn login(mut cookies: Cookies, login: Form<Login>) -> Result<Redirect, Flash<Redirect>> {
fn login(mut cookies: Cookies<'_>, login: Form<Login>) -> Result<Redirect, Flash<Redirect>> {
if login.username == "Sergio" && login.password == "password" {
cookies.add_private(Cookie::new("user_id", 1.to_string()));
Ok(Redirect::to(uri!(index)))
@ -45,7 +44,7 @@ fn login(mut cookies: Cookies, login: Form<Login>) -> Result<Redirect, Flash<Red
}
#[post("/logout")]
fn logout(mut cookies: Cookies) -> Flash<Redirect> {
fn logout(mut cookies: Cookies<'_>) -> Flash<Redirect> {
cookies.remove_private(Cookie::named("user_id"));
Flash::success(Redirect::to(uri!(login_page)), "Successfully logged out.")
}
@ -56,7 +55,7 @@ fn login_user(_user: User) -> Redirect {
}
#[get("/login", rank = 2)]
fn login_page(flash: Option<FlashMessage>) -> Template {
fn login_page(flash: Option<FlashMessage<'_, '_>>) -> Template {
let mut context = HashMap::new();
if let Some(ref msg) = flash {
context.insert("flash", msg.msg());

View File

@ -3,7 +3,7 @@ use rocket::Response;
use rocket::local::Client;
use rocket::http::{Status, Cookie, ContentType};
fn user_id_cookie(response: &Response) -> Option<Cookie<'static>> {
fn user_id_cookie(response: &Response<'_>) -> Option<Cookie<'static>> {
let cookie = response.headers()
.get("Set-Cookie")
.filter(|v| v.starts_with("user_id"))

View File

@ -2,6 +2,7 @@
name = "state"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -12,7 +12,7 @@ use rocket::response::content;
struct HitCount(AtomicUsize);
#[get("/")]
fn index(hit_count: State<HitCount>) -> content::Html<String> {
fn index(hit_count: State<'_, HitCount>) -> content::Html<String> {
hit_count.0.fetch_add(1, Ordering::Relaxed);
let msg = "Your visit has been recorded!";
let count = format!("Visits: {}", count(hit_count));
@ -20,7 +20,7 @@ fn index(hit_count: State<HitCount>) -> content::Html<String> {
}
#[get("/count")]
fn count(hit_count: State<HitCount>) -> String {
fn count(hit_count: State<'_, HitCount>) -> String {
hit_count.0.load(Ordering::Relaxed).to_string()
}

View File

@ -2,6 +2,7 @@
name = "static_files"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,6 +2,7 @@
name = "stream"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,6 +2,7 @@
name = "tera_templates"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,8 +2,6 @@
#[macro_use] extern crate rocket;
#[macro_use] extern crate serde_derive;
extern crate serde_json;
extern crate rocket_contrib;
#[cfg(test)] mod tests;
@ -31,7 +29,7 @@ fn get(name: String) -> Template {
}
#[catch(404)]
fn not_found(req: &Request) -> Template {
fn not_found(req: &Request<'_>) -> Template {
let mut map = HashMap::new();
map.insert("path", req.uri().path());
Template::render("error/404", &map)

View File

@ -15,7 +15,7 @@ macro_rules! dispatch {
fn test_root() {
// Check that the redirect works.
for method in &[Get, Head] {
dispatch!(*method, "/", |_: &Client, mut response: LocalResponse| {
dispatch!(*method, "/", |_: &Client, mut response: LocalResponse<'_>| {
assert_eq!(response.status(), Status::SeeOther);
assert!(response.body().is_none());
@ -26,8 +26,8 @@ fn test_root() {
// Check that other request methods are not accepted (and instead caught).
for method in &[Post, Put, Delete, Options, Trace, Connect, Patch] {
dispatch!(*method, "/", |client: &Client, mut response: LocalResponse| {
let mut map = ::std::collections::HashMap::new();
dispatch!(*method, "/", |client: &Client, mut response: LocalResponse<'_>| {
let mut map = std::collections::HashMap::new();
map.insert("path", "/");
let expected = Template::show(client.rocket(), "error/404", &map).unwrap();
@ -40,7 +40,7 @@ fn test_root() {
#[test]
fn test_name() {
// Check that the /hello/<name> route works.
dispatch!(Get, "/hello/Jack", |client: &Client, mut response: LocalResponse| {
dispatch!(Get, "/hello/Jack", |client: &Client, mut response: LocalResponse<'_>| {
let context = super::TemplateContext {
name: "Jack".into(),
items: vec!["One", "Two", "Three"]
@ -55,8 +55,8 @@ fn test_name() {
#[test]
fn test_404() {
// Check that the error catcher works.
dispatch!(Get, "/hello/", |client: &Client, mut response: LocalResponse| {
let mut map = ::std::collections::HashMap::new();
dispatch!(Get, "/hello/", |client: &Client, mut response: LocalResponse<'_>| {
let mut map = std::collections::HashMap::new();
map.insert("path", "/hello/");
let expected = Template::show(client.rocket(), "error/404", &map).unwrap();

View File

@ -2,6 +2,7 @@
name = "testing"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,6 +2,7 @@
name = "tls"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -1,4 +1,3 @@
use super::rocket;
use rocket::local::Client;
#[test]

View File

@ -2,6 +2,7 @@
name = "todo"
version = "0.0.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -17,7 +17,7 @@ use rocket::response::{Flash, Redirect};
use rocket_contrib::{templates::Template, serve::StaticFiles};
use diesel::SqliteConnection;
use task::{Task, Todo};
use crate::task::{Task, Todo};
// This macro from `diesel_migrations` defines an `embedded_migrations` module
// containing a function named `run`. This allows the example to be run and
@ -71,7 +71,7 @@ fn delete(id: i32, conn: DbConn) -> Result<Flash<Redirect>, Template> {
}
#[get("/")]
fn index(msg: Option<FlashMessage>, conn: DbConn) -> Template {
fn index(msg: Option<FlashMessage<'_, '_>>, conn: DbConn) -> Template {
Template::render("index", &match msg {
Some(ref msg) => Context::raw(&conn, Some((msg.name(), msg.msg()))),
None => Context::raw(&conn, None),

View File

@ -1,9 +1,7 @@
extern crate parking_lot;
extern crate rand;
use super::task::Task;
use self::parking_lot::Mutex;
use self::rand::{Rng, thread_rng, distributions::Alphanumeric};
use parking_lot::Mutex;
use rand::{Rng, thread_rng, distributions::Alphanumeric};
use rocket::local::Client;
use rocket::http::{Status, ContentType};

View File

@ -2,6 +2,7 @@
name = "uuid"
version = "0.1.0"
workspace = "../../"
edition = "2018"
publish = false
[dependencies]

View File

@ -2,8 +2,6 @@
#[macro_use] extern crate rocket;
#[macro_use] extern crate lazy_static;
extern crate rocket_contrib;
extern crate uuid;
use std::collections::HashMap;
use rocket_contrib::uuid::Uuid;