Skip to content

Commit 05cab7f

Browse files
committed
Migrate all files to use tide::Result
1 parent 70863ee commit 05cab7f

File tree

12 files changed

+54
-48
lines changed

12 files changed

+54
-48
lines changed

examples/cookies.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@ use tide::{Request, Response};
55

66
/// Tide will use the the `Cookies`'s `Extract` implementation to build this parameter.
77
///
8-
async fn retrieve_cookie(cx: Request<()>) -> String {
9-
format!("hello cookies: {:?}", cx.cookie("hello").unwrap())
8+
async fn retrieve_cookie(cx: Request<()>) -> tide::Result<String> {
9+
Ok(format!("hello cookies: {:?}", cx.cookie("hello").unwrap()))
1010
}
1111

12-
async fn set_cookie(_req: Request<()>) -> Response {
12+
async fn set_cookie(_req: Request<()>) -> tide::Result<Response> {
1313
let mut res = tide::Response::new(StatusCode::Ok);
1414
res.set_cookie(Cookie::new("hello", "world"));
15-
res
15+
Ok(res)
1616
}
1717

18-
async fn remove_cookie(_req: Request<()>) -> Response {
18+
async fn remove_cookie(_req: Request<()>) -> tide::Result<Response> {
1919
let mut res = tide::Response::new(StatusCode::Ok);
2020
res.remove_cookie(Cookie::named("hello"));
21-
res
21+
Ok(res)
2222
}
2323

2424
fn main() -> Result<(), std::io::Error> {

examples/fib.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fn fib(n: usize) -> usize {
99
}
1010
}
1111

12-
async fn fibsum(req: Request<()>) -> String {
12+
async fn fibsum(req: Request<()>) -> tide::Result<String> {
1313
use std::time::Instant;
1414
let n: usize = req.param("n").unwrap_or(0);
1515
// Start a stopwatch
@@ -19,10 +19,11 @@ async fn fibsum(req: Request<()>) -> String {
1919
// Stop the stopwatch
2020
let duration = Instant::now().duration_since(start).as_secs();
2121
// Return the answer
22-
format!(
22+
let res = format!(
2323
"The fib of {} is {}.\nIt was computed in {} secs.\n",
2424
n, fib_n, duration,
25-
)
25+
);
26+
Ok(res)
2627
}
2728
// Example: HTTP GET to http://localhost:8080/fib/42
2829
// $ curl "http://localhost:8080/fib/42"

examples/graphql.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ fn create_schema() -> Schema {
7373
Schema::new(QueryRoot {}, MutationRoot {})
7474
}
7575

76-
async fn handle_graphql(mut cx: Request<State>) -> Response {
76+
async fn handle_graphql(mut cx: Request<State>) -> tide::Result<Response> {
7777
let query: juniper::http::GraphQLRequest = cx
7878
.body_json()
7979
.await
@@ -87,15 +87,17 @@ async fn handle_graphql(mut cx: Request<State>) -> Response {
8787
StatusCode::BadRequest
8888
};
8989

90-
Response::new(status)
90+
let res = Response::new(status)
9191
.body_json(&response)
92-
.expect("be able to serialize the graphql response")
92+
.expect("be able to serialize the graphql response");
93+
Ok(res)
9394
}
9495

95-
async fn handle_graphiql(_: Request<State>) -> Response {
96-
Response::new(StatusCode::Ok)
96+
async fn handle_graphiql(_: Request<State>) -> tide::Result<Response> {
97+
let res = Response::new(StatusCode::Ok)
9798
.body_string(juniper::http::graphiql::graphiql_source("/graphql"))
98-
.set_header("content-type".parse().unwrap(), "text/html;charset=utf-8")
99+
.set_header("content-type".parse().unwrap(), "text/html;charset=utf-8");
100+
Ok(res)
99101
}
100102

101103
fn main() -> std::io::Result<()> {

examples/hello.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use async_std::task;
33
fn main() -> Result<(), std::io::Error> {
44
task::block_on(async {
55
let mut app = tide::new();
6-
app.at("/").get(|_| async move { "Hello, world!" });
6+
app.at("/").get(|_| async move { Ok("Hello, world!") });
77
app.listen("127.0.0.1:8080").await?;
88
Ok(())
99
})

examples/json.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ fn main() -> io::Result<()> {
1414

1515
app.at("/submit")
1616
.post(|mut req: tide::Request<()>| async move {
17-
let cat: Cat = req.body_json().await.unwrap();
17+
let cat: Cat = req.body_json().await?;
1818
println!("cat name: {}", cat.name);
1919

2020
let cat = Cat {
2121
name: "chashu".into(),
2222
};
2323

24-
tide::Response::new(StatusCode::Ok).body_json(&cat).unwrap()
24+
Ok(tide::Response::new(StatusCode::Ok).body_json(&cat)?)
2525
});
2626

2727
app.listen("127.0.0.1:8080").await?;

src/endpoint.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,11 @@ pub trait Endpoint<State>: Send + Sync + 'static {
5656

5757
pub(crate) type DynEndpoint<State> = dyn Endpoint<State>;
5858

59-
impl<State, F: Send + Sync + 'static, Fut> Endpoint<State> for F
59+
impl<State, F: Send + Sync + 'static, Fut, Res> Endpoint<State> for F
6060
where
6161
F: Fn(Request<State>) -> Fut,
62-
Fut: Future<Output = Result<Response>> + Send + 'static,
62+
Fut: Future<Output = Result<Res>> + Send + 'static,
63+
Res: IntoResponse,
6364
{
6465
fn call<'a>(&'a self, req: Request<State>) -> BoxFuture<'a, Result<Response>> {
6566
let fut = (self)(req);

tests/chunked-encode-large.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,10 @@ async fn chunked_large() -> Result<(), http_types::Error> {
7171
let mut app = tide::new();
7272
app.at("/").get(|mut _req: tide::Request<()>| async move {
7373
let body = Cursor::new(TEXT.to_owned());
74-
Response::new(StatusCode::Ok)
74+
let res = Response::new(StatusCode::Ok)
7575
.body(body)
76-
.set_header(headers::CONTENT_TYPE, "text/plain; charset=utf-8")
76+
.set_header(headers::CONTENT_TYPE, "text/plain; charset=utf-8");
77+
Ok(res)
7778
});
7879
app.listen("localhost:8080").await?;
7980
Result::<(), http_types::Error>::Ok(())

tests/chunked-encode-small.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ async fn chunked_large() -> Result<(), http_types::Error> {
2020
let mut app = tide::new();
2121
app.at("/").get(|mut _req: tide::Request<()>| async move {
2222
let body = Cursor::new(TEXT.to_owned());
23-
Response::new(StatusCode::Ok)
23+
let res = Response::new(StatusCode::Ok)
2424
.body(body)
25-
.set_header(headers::CONTENT_TYPE, "text/plain; charset=utf-8")
25+
.set_header(headers::CONTENT_TYPE, "text/plain; charset=utf-8");
26+
Ok(res)
2627
});
2728
app.listen("localhost:8080").await?;
2829
Result::<(), http_types::Error>::Ok(())

tests/cookies.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,27 @@ use tide::{Request, Response, Server};
88

99
static COOKIE_NAME: &str = "testCookie";
1010

11-
async fn retrieve_cookie(cx: Request<()>) -> String {
12-
cx.cookie(COOKIE_NAME).unwrap().value().to_string()
11+
async fn retrieve_cookie(cx: Request<()>) -> tide::Result<String> {
12+
Ok(cx.cookie(COOKIE_NAME).unwrap().value().to_string())
1313
}
1414

15-
async fn set_cookie(_req: Request<()>) -> Response {
15+
async fn set_cookie(_req: Request<()>) -> tide::Result<Response> {
1616
let mut res = Response::new(StatusCode::Ok);
1717
res.set_cookie(Cookie::new(COOKIE_NAME, "NewCookieValue"));
18-
res
18+
Ok(res)
1919
}
2020

21-
async fn remove_cookie(_req: Request<()>) -> Response {
21+
async fn remove_cookie(_req: Request<()>) -> tide::Result<Response> {
2222
let mut res = Response::new(StatusCode::Ok);
2323
res.remove_cookie(Cookie::named(COOKIE_NAME));
24-
res
24+
Ok(res)
2525
}
2626

27-
async fn set_multiple_cookie(_req: Request<()>) -> Response {
27+
async fn set_multiple_cookie(_req: Request<()>) -> tide::Result<Response> {
2828
let mut res = Response::new(StatusCode::Ok);
2929
res.set_cookie(Cookie::new("C1", "V1"));
3030
res.set_cookie(Cookie::new("C2", "V2"));
31-
res
31+
Ok(res)
3232
}
3333

3434
fn app() -> crate::Server<()> {

tests/querystring.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@ struct OptionalParams {
1616
_time: Option<u64>,
1717
}
1818

19-
async fn handler(cx: Request<()>) -> Response {
19+
async fn handler(cx: Request<()>) -> tide::Result<Response> {
2020
let p = cx.query::<Params>();
2121
match p {
22-
Ok(params) => params.msg.into_response(),
23-
Err(error) => Response::new(error.status()),
22+
Ok(params) => Ok(params.msg.into_response()),
23+
Err(error) => Ok(Response::new(error.status())),
2424
}
2525
}
2626

27-
async fn optional_handler(cx: Request<()>) -> Response {
27+
async fn optional_handler(cx: Request<()>) -> tide::Result<Response> {
2828
let p = cx.query::<OptionalParams>();
2929
match p {
30-
Ok(_) => Response::new(StatusCode::Ok),
31-
Err(error) => Response::new(error.status()),
30+
Ok(_) => Ok(Response::new(StatusCode::Ok)),
31+
Err(error) => Ok(Response::new(error.status())),
3232
}
3333
}
3434

0 commit comments

Comments
 (0)