Skip to content

Commit 1f0cd32

Browse files
authored
chore: cleanup tests and docs (#3)
1 parent f04ed3d commit 1f0cd32

File tree

8 files changed

+50
-43
lines changed

8 files changed

+50
-43
lines changed

bacon.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,13 @@ need_stdout = false
4545
command = [
4646
"cargo",
4747
"test",
48+
"--workspace",
49+
"--all-features",
4850
"--color",
4951
"always",
5052
"--",
5153
"--color",
52-
"always", # see https://github.com/Canop/bacon/issues/124
54+
"always", # see https://github.com/Canop/bacon/issues/124
5355
]
5456
need_stdout = true
5557

webfinger-rs/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,7 @@ doc-scrape-examples = true
6767
[[example]]
6868
name = "actix"
6969
required-features = ["actix"]
70+
71+
[[example]]
72+
name = "client"
73+
required-features = ["reqwest"]

webfinger-rs/src/axum.rs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const JRD_CONTENT_TYPE: HeaderValue = HeaderValue::from_static("application/jrd+
2020
impl IntoResponse for WebFingerResponse {
2121
/// Converts a WebFinger response into an axum response.
2222
///
23-
/// This is used to convert a WebFinger [`Response`] into an axum response in an axum route
23+
/// This is used to convert a [`WebFingerResponse`] into an axum response in an axum route
2424
/// handler. The response will be serialized as JSON and the `Content-Type` header will be set
2525
/// to `application/jrd+json`.
2626
///
@@ -30,18 +30,19 @@ impl IntoResponse for WebFingerResponse {
3030
///
3131
/// ```rust
3232
/// use axum::response::IntoResponse;
33-
/// use webfinger_rs::{Link, Request, Response};
33+
/// use webfinger_rs::{Link, WebFingerRequest, WebFingerResponse};
3434
///
35-
/// async fn handler(request: Request) -> impl IntoResponse {
35+
/// async fn handler(request: WebFingerRequest) -> impl IntoResponse {
3636
/// // ... your code to handle the webfinger request ...
3737
/// let subject = request.resource.to_string();
3838
/// let link = Link::builder("http://webfinger.net/rel/profile-page")
3939
/// .href(format!("https://example.com/profile/{subject}"));
40-
/// Response::builder(subject).link(link).build()
40+
/// WebFingerResponse::builder(subject).link(link).build()
4141
/// }
4242
/// ```
4343
///
44-
/// [axum example]: http://github.com/joshka/webfinger-rs/blob/main/webfinger-rs/examples/axum.rs
44+
/// [axum example]:
45+
/// http://github.com/joshka/webfinger-rs/blob/main/webfinger-rs/examples/axum.rs
4546
fn into_response(self) -> AxumResponse {
4647
([(header::CONTENT_TYPE, JRD_CONTENT_TYPE)], Json(self)).into_response()
4748
}
@@ -93,10 +94,7 @@ impl From<QueryRejection> for Rejection {
9394
impl<S: Send + Sync> FromRequestParts<S> for WebFingerRequest {
9495
type Rejection = Rejection;
9596

96-
/// Extracts a `Request` from the request parts.
97-
///
98-
/// This is used to extract a WebFinger [`Request`] from the request parts in an axum route
99-
/// handler.
97+
/// Extracts a [`WebFingerRequest`] from the request parts.
10098
///
10199
/// # Errors
102100
///
@@ -115,16 +113,16 @@ impl<S: Send + Sync> FromRequestParts<S> for WebFingerRequest {
115113
///
116114
/// ```rust
117115
/// use axum::response::IntoResponse;
118-
/// use webfinger_rs::Request;
116+
/// use webfinger_rs::WebFingerRequest;
119117
///
120-
/// async fn handler(request: Request) -> impl IntoResponse {
121-
/// let Request {
118+
/// async fn handler(request: WebFingerRequest) -> impl IntoResponse {
119+
/// let WebFingerRequest {
122120
/// host,
123121
/// resource,
124122
/// rels,
125123
/// } = request;
126124
/// // ... your code to handle the webfinger request ...
127-
/// # webfinger_rs::Response::new(resource.to_string())
125+
/// # webfinger_rs::WebFingerResponse::new(resource.to_string())
128126
/// }
129127
/// ```
130128
///

webfinger-rs/src/lib.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@
3535
//! <https://github.com/joshka/webfinger-rs/blob/main/webfinger-rs/examples/client.rs>.
3636
//!
3737
//! ```rust,no_run
38-
//! use webfinger_rs::Request;
38+
//! use webfinger_rs::WebFingerRequest;
3939
//!
4040
//! #[tokio::main]
4141
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
42-
//! let request = Request::builder("acct:[email protected]")?
42+
//! let request = WebFingerRequest::builder("acct:[email protected]")?
4343
//! .host("example.com")
4444
//! .rel("http://webfinger.net/rel/profile-page")
4545
//! .build();
46-
//! let response = request.execute().await?;
46+
//! let response = request.execute_reqwest().await?;
4747
//! dbg!(response);
4848
//! Ok(())
4949
//! }
@@ -57,7 +57,7 @@
5757
//!
5858
//! ```rust
5959
//! use axum::response::Result as AxumResult;
60-
//! use webfinger_rs::{Link, Rel, Request as WebFingerRequest, Response as WebFingerResponse};
60+
//! use webfinger_rs::{Link, Rel, WebFingerRequest, WebFingerResponse};
6161
//!
6262
//! async fn webfinger(request: WebFingerRequest) -> AxumResult<WebFingerResponse> {
6363
//! let subject = request.resource.to_string();
@@ -124,7 +124,10 @@
124124

125125
pub use crate::{
126126
error::Error,
127-
types::{Link, Rel, Request as WebFingerRequest, Response as WebFingerResponse, Title},
127+
types::{
128+
Link, LinkBuilder, Rel, Request as WebFingerRequest, RequestBuilder,
129+
Response as WebFingerResponse, ResponseBuilder, Title,
130+
},
128131
};
129132

130133
#[cfg(feature = "actix")]

webfinger-rs/src/reqwest.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ impl WebFingerRequest {
3939
/// # Examples
4040
///
4141
/// ```rust
42-
/// use webfinger_rs::Request;
42+
/// use webfinger_rs::WebFingerRequest;
4343
///
4444
/// # async fn run() -> Result<(), Box<dyn std::error::Error>> {
45-
/// let query = Request::builder("acct:[email protected]")?
45+
/// let query = WebFingerRequest::builder("acct:[email protected]")?
4646
/// .host("example.com")
4747
/// .rel("http://webfinger.net/rel/profile-page")
4848
/// .build();
49-
/// let response = query.execute().await?;
49+
/// let response = query.execute_reqwest().await?;
5050
/// # Ok(())
5151
/// # }
5252
/// ```

webfinger-rs/src/types.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
pub use {
22
rel::Rel,
3-
request::Request,
4-
response::{Link, Response, Title},
3+
request::{Builder as RequestBuilder, Request},
4+
response::{Builder as ResponseBuilder, Link, LinkBuilder, Response, Title},
55
};
66

77
mod rel;

webfinger-rs/src/types/request.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ use crate::{Error, Rel};
1515
/// # Examples
1616
///
1717
/// ```rust
18-
/// use webfinger_rs::Request;
18+
/// use webfinger_rs::WebFingerRequest;
1919
///
20-
/// let request = Request::builder("acct:[email protected]")?
20+
/// let request = WebFingerRequest::builder("acct:[email protected]")?
2121
/// .host("example.com")
2222
/// .rel("http://webfinger.net/rel/profile-page")
2323
/// .build();
@@ -28,21 +28,21 @@ use crate::{Error, Rel};
2828
///
2929
/// ```rust
3030
/// # async fn example() -> Result<(), Box<dyn std::error::Error>> {
31-
/// # use webfinger_rs::Request;
32-
/// # let request = Request::builder("acct:[email protected]")?.build();
33-
/// let response = request.execute().await?;
31+
/// # use webfinger_rs::WebFingerRequest;
32+
/// # let request = WebFingerRequest::builder("acct:[email protected]")?.build();
33+
/// let response = request.execute_reqwest().await?;
3434
/// # Ok(())
3535
/// # }
3636
/// ```
3737
///
3838
/// `Request` can be used as an Axum extractor as it implements [`axum::extract::FromRequestParts`].
3939
///
4040
/// ```rust
41-
/// use webfinger_rs::{Request, Response};
41+
/// use webfinger_rs::{WebFingerRequest, WebFingerResponse};
4242
///
43-
/// async fn handler(request: Request) -> Response {
43+
/// async fn handler(request: WebFingerRequest) -> WebFingerResponse {
4444
/// // ... handle the request ...
45-
/// # Response::new("")
45+
/// # WebFingerResponse::new("")
4646
/// }
4747
/// ```
4848
#[serde_as]
@@ -98,9 +98,9 @@ impl Request {
9898
/// # Examples
9999
///
100100
/// ```rust
101-
/// use webfinger_rs::Request;
101+
/// use webfinger_rs::WebFingerRequest;
102102
///
103-
/// let query = Request::builder("acct:[email protected]")?
103+
/// let query = WebFingerRequest::builder("acct:[email protected]")?
104104
/// .host("example.com")
105105
/// .rel("http://webfinger.net/rel/profile-page")
106106
/// .build();
@@ -142,9 +142,9 @@ impl Builder {
142142
/// # Examples
143143
///
144144
/// ```rust
145-
/// use webfinger_rs::Request;
145+
/// use webfinger_rs::WebFingerRequest;
146146
///
147-
/// let query = Request::builder("acct:[email protected]")?
147+
/// let query = WebFingerRequest::builder("acct:[email protected]")?
148148
/// .rel("http://webfinger.net/rel/profile-page")
149149
/// .build();
150150
/// # Ok::<(), Box<dyn std::error::Error>>(())

webfinger-rs/src/types/response.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ use crate::Rel;
1919
/// # Examples
2020
///
2121
/// ```rust
22-
/// use webfinger_rs::{Link, Response};
22+
/// use webfinger_rs::{Link, WebFingerResponse};
2323
///
2424
/// let avatar = Link::builder("http://webfinger.net/rel/avatar")
2525
/// .href("https://example.com/avatar.png")
2626
/// .build();
2727
/// let profile = Link::builder("http://webfinger.net/rel/profile-page")
2828
/// .href("https://example.com/profile/carol")
2929
/// .build();
30-
/// let response = Response::builder("acct:[email protected]")
30+
/// let response = WebFingerResponse::builder("acct:[email protected]")
3131
/// .alias("https://example.com/profile/carol")
3232
/// .property("https://example.com/ns/role", "developer")
3333
/// .link(avatar)
@@ -40,11 +40,11 @@ use crate::Rel;
4040
///
4141
/// ```rust
4242
/// use axum::response::IntoResponse;
43-
/// use webfinger_rs::{Link, Request, Response};
43+
/// use webfinger_rs::{Link, WebFingerRequest, WebFingerResponse};
4444
///
45-
/// async fn handler(request: Request) -> Response {
45+
/// async fn handler(request: WebFingerRequest) -> WebFingerResponse {
4646
/// // ... handle the request ...
47-
/// Response::builder("acct:[email protected]")
47+
/// WebFingerResponse::builder("acct:[email protected]")
4848
/// .alias("https://example.com/profile/carol")
4949
/// .property("https://example.com/ns/role", "developer")
5050
/// .link(
@@ -100,11 +100,11 @@ impl Response {
100100
/// # Examples
101101
///
102102
/// ```rust
103-
/// use webfinger_rs::{Link, Response};
103+
/// use webfinger_rs::{Link, WebFingerResponse};
104104
///
105105
/// let avatar =
106106
/// Link::builder("http://webfinger.net/rel/avatar").href("https://example.com/avatar.png");
107-
/// let response = Response::builder("acct:[email protected]")
107+
/// let response = WebFingerResponse::builder("acct:[email protected]")
108108
/// .alias("https://example.com/profile/carol")
109109
/// .property("https://example.com/ns/role", "developer")
110110
/// .link(avatar)

0 commit comments

Comments
 (0)