Skip to content

Commit 0b9c91d

Browse files
committed
chore: switch to using the tracing crate
1 parent e5b7dcf commit 0b9c91d

File tree

5 files changed

+65
-51
lines changed

5 files changed

+65
-51
lines changed

Cargo.toml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ license = "MIT"
1212
edition = "2021"
1313

1414
[dependencies]
15-
log = "0.4.8"
16-
maplit = "1.0.1"
17-
itertools = "0.10.0"
15+
chrono = "0.4.26"
16+
futures = "0.3.28"
17+
hex = "0.4.3"
18+
http = "0.2.9"
19+
hyper = { version = "0.14.26", features = ["full"] }
20+
itertools = "0.10.5"
1821
lazy_static = "1.4.0"
19-
chrono = "0.4.15"
20-
serde = "1.0.98"
21-
serde_json = "1.0.40"
22-
http = "0.2.1"
23-
hex = "0.4.2"
24-
hyper = { version = "0.14", features = ["full"] }
25-
futures = "0.3.5"
22+
maplit = "1.0.2"
23+
serde = "1.0.163"
24+
serde_json = "1.0.96"
25+
tracing = "0.1.37"
2626

2727
[dev-dependencies]
2828
expectest = "0.12.0"

src/context.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
//! The `context` module encapsulates the context of the environment that the webmachine is
22
//! executing in. Basically wraps the request and response.
33
4-
use std::collections::{HashMap, BTreeMap};
5-
use crate::headers::HeaderValue;
4+
use std::collections::{BTreeMap, HashMap};
5+
66
use chrono::{DateTime, FixedOffset};
7+
use maplit::hashmap;
78
use itertools::Itertools;
89

10+
use crate::headers::HeaderValue;
11+
912
/// Request that the state machine is executing against
1013
#[derive(Debug, Clone, PartialEq)]
1114
pub struct WebmachineRequest {
@@ -263,10 +266,12 @@ impl Default for WebmachineContext {
263266

264267
#[cfg(test)]
265268
mod tests {
266-
use super::*;
267-
use crate::headers::*;
268269
use expectest::prelude::*;
269270

271+
use crate::headers::*;
272+
273+
use super::*;
274+
270275
#[test]
271276
fn request_does_not_have_header_test() {
272277
let request = WebmachineRequest {

src/headers.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
//! The `headers` deals with parsing and formatting request and response headers
22
33
use std::collections::HashMap;
4-
use std::str::Chars;
5-
use std::iter::Peekable;
64
use std::hash::{Hash, Hasher};
5+
use std::iter::Peekable;
6+
use std::str::Chars;
7+
78
use itertools::Itertools;
89

910
const SEPERATORS: [char; 10] = ['(', ')', '<', '>', '@', ',', ';', '=', '{', '}'];
@@ -231,10 +232,12 @@ macro_rules! h {
231232

232233
#[cfg(test)]
233234
mod tests {
234-
use super::*;
235-
use expectest::prelude::*;
235+
use expectest::prelude::*;
236+
use maplit::hashmap;
236237

237-
#[test]
238+
use super::*;
239+
240+
#[test]
238241
fn parse_header_value_test() {
239242
expect!(HeaderValue::parse_string("")).to(be_equal_to("".to_string()));
240243
expect!(HeaderValue::parse_string("A B")).to(be_equal_to("A B".to_string()));

src/lib.rs

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,6 @@ The WebmachineDispatcher implementes the Hyper Service trait, so you can pass it
4343
Note: This example uses the maplit crate to provide the `btreemap` macro and the log crate for the logging macros.
4444
4545
```no_run
46-
# #[macro_use] extern crate log;
47-
# #[macro_use] extern crate maplit;
48-
# extern crate hyper;
49-
# extern crate webmachine_rust;
50-
# extern crate serde_json;
5146
use hyper::server::Server;
5247
use webmachine_rust::*;
5348
use webmachine_rust::context::*;
@@ -57,6 +52,8 @@ Note: This example uses the maplit crate to provide the `btreemap` macro and the
5752
use std::net::SocketAddr;
5853
use hyper::service::make_service_fn;
5954
use std::convert::Infallible;
55+
use maplit::btreemap;
56+
use tracing::error;
6057
6158
# fn main() {}
6259
// setup the dispatcher, which maps paths to resources. The requirement of make_service_fn is
@@ -109,29 +106,27 @@ For an example of a project using this crate, have a look at the [Pact Mock Serv
109106

110107
#![warn(missing_docs)]
111108

112-
#[macro_use] extern crate log;
113-
#[macro_use] extern crate maplit;
114-
extern crate itertools;
115-
#[macro_use] extern crate lazy_static;
116-
extern crate chrono;
117-
extern crate http;
118-
119109
use std::collections::{BTreeMap, HashMap};
120-
use std::sync::Mutex;
110+
use std::future::Future;
111+
use std::ops::Deref;
112+
use std::pin::Pin;
121113
use std::sync::Arc;
122-
use itertools::Itertools;
114+
use std::sync::Mutex;
115+
use std::task::{Context, Poll};
116+
123117
use chrono::{DateTime, FixedOffset, Utc};
124-
use context::{WebmachineContext, WebmachineResponse, WebmachineRequest};
125-
use headers::HeaderValue;
118+
use futures::TryStreamExt;
126119
use http::{Request, Response};
127-
use hyper::service::Service;
128-
use std::task::{Context, Poll};
129-
use std::pin::Pin;
130-
use std::future::Future;
131120
use http::request::Parts;
132-
use futures::TryStreamExt;
133121
use hyper::Body;
134-
use std::ops::Deref;
122+
use hyper::service::Service;
123+
use itertools::Itertools;
124+
use lazy_static::lazy_static;
125+
use maplit::hashmap;
126+
use tracing::{debug, error, trace};
127+
128+
use context::{WebmachineContext, WebmachineRequest, WebmachineResponse};
129+
use headers::HeaderValue;
135130

136131
#[macro_use] pub mod headers;
137132
pub mod context;

src/tests.rs

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1+
use std::collections::HashMap;
2+
3+
use chrono::*;
4+
use expectest::prelude::*;
5+
use maplit::btreemap;
6+
17
use super::*;
2-
use super::sanitise_path;
38
use super::{
49
execute_state_machine,
5-
update_paths_for_resource,
6-
parse_header_values,
710
finalise_response,
811
join_paths,
12+
parse_header_values,
13+
update_paths_for_resource,
914
};
1015
use super::context::*;
1116
use super::headers::*;
12-
use expectest::prelude::*;
13-
use std::collections::HashMap;
14-
use chrono::*;
17+
use super::sanitise_path;
1518

1619
fn resource(path: &str) -> WebmachineRequest {
1720
WebmachineRequest {
@@ -713,7 +716,8 @@ fn execute_state_machine_returns_412_if_the_resource_etag_does_not_match_if_matc
713716

714717
#[test]
715718
fn execute_state_machine_returns_412_if_the_resource_last_modified_gt_unmodified_since() {
716-
let datetime = Local::now().with_timezone(&FixedOffset::east(10 * 3600));
719+
let offset = FixedOffset::east_opt(10 * 3600).expect("FixedOffset::east out of bounds");
720+
let datetime = Local::now().with_timezone(&offset);
717721
let header_datetime = datetime.clone() - Duration::minutes(5);
718722
let mut context = WebmachineContext {
719723
request: WebmachineRequest {
@@ -726,7 +730,10 @@ fn execute_state_machine_returns_412_if_the_resource_last_modified_gt_unmodified
726730
};
727731
let resource = WebmachineResource {
728732
resource_exists: callback(&|_, _| true),
729-
last_modified: callback(&|_, _| Some(Local::now().with_timezone(&FixedOffset::east(10 * 3600)))),
733+
last_modified: callback(&|_, _| {
734+
let fixed_offset = FixedOffset::east_opt(10 * 3600).expect("FixedOffset::east out of bounds");
735+
Some(Local::now().with_timezone(&fixed_offset))
736+
}),
730737
..WebmachineResource::default()
731738
};
732739

@@ -821,7 +828,8 @@ fn execute_state_machine_returns_304_if_resource_etag_in_if_non_match_and_is_a_h
821828

822829
#[test]
823830
fn execute_state_machine_returns_304_if_the_resource_last_modified_gt_modified_since() {
824-
let datetime = Local::now().with_timezone(&FixedOffset::east(10 * 3600)) - Duration::minutes(15);
831+
let offset = FixedOffset::east_opt(10 * 3600).expect("FixedOffset::east out of bounds");
832+
let datetime = Local::now().with_timezone(&offset) - Duration::minutes(15);
825833
let header_datetime = datetime + Duration::minutes(5);
826834
let mut context = WebmachineContext {
827835
request: WebmachineRequest {
@@ -834,7 +842,10 @@ fn execute_state_machine_returns_304_if_the_resource_last_modified_gt_modified_s
834842
};
835843
let resource = WebmachineResource {
836844
resource_exists: callback(&|_, _| true),
837-
last_modified: callback(&|_, _| Some(Local::now().with_timezone(&FixedOffset::east(10 * 3600)) - Duration::minutes(15))),
845+
last_modified: callback(&|_, _| {
846+
let offset = FixedOffset::east_opt(10 * 3600).expect("FixedOffset::east out of bounds");
847+
Some(Local::now().with_timezone(&offset) - Duration::minutes(15))
848+
}),
838849
..WebmachineResource::default()
839850
};
840851
execute_state_machine(&mut context, &resource);

0 commit comments

Comments
 (0)