-
Notifications
You must be signed in to change notification settings - Fork 59
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Manage source snippets as snapshots (#115)
We extend the system we built in #114 for error outputs to source code snippets.
- Loading branch information
1 parent
c05c3f0
commit 18cd144
Showing
40 changed files
with
751 additions
and
225 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -53,7 +53,7 @@ jobs: | |
name: tutorial_generator | ||
path: doc_examples/tutorial_generator/target/debug/tutorial_generator | ||
|
||
build_docs: | ||
is_up_to_date: | ||
runs-on: ubuntu-latest | ||
needs: | ||
- build_pavex_cli | ||
|
@@ -72,24 +72,6 @@ jobs: | |
components: rust-docs-json | ||
- name: Install Rust stable toolchain | ||
uses: actions-rust-lang/[email protected] | ||
- name: Cache dependencies | ||
uses: Swatinem/rust-cache@v2 | ||
with: | ||
workspaces: "./libs -> ./libs/target" | ||
key: "build-pavex-docs" | ||
- name: Build API reference | ||
run: | | ||
cd libs | ||
cargo doc --package pavex --no-deps | ||
- name: Copy API reference files | ||
run: | | ||
mkdir -p docs/api_reference | ||
cp -r libs/target/doc/* docs/api_reference | ||
- name: Link Checker | ||
uses: lycheeverse/lychee-action@v1 | ||
with: | ||
fail: true | ||
args: --base . --exclude-loopback --exclude-path="docs/api_reference" --require-https --verbose --no-progress docs | ||
- name: Download pavex CLI artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
|
@@ -111,6 +93,32 @@ jobs: | |
run: | | ||
cd doc_examples/quickstart | ||
tutorial_generator --verify | ||
build_docs: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
- name: Install Rust stable toolchain | ||
uses: actions-rust-lang/[email protected] | ||
- name: Cache dependencies | ||
uses: Swatinem/rust-cache@v2 | ||
with: | ||
workspaces: "./libs -> ./libs/target" | ||
key: "build-pavex-docs" | ||
- name: Build API reference | ||
run: | | ||
cd libs | ||
cargo doc --package pavex --no-deps | ||
- name: Copy API reference files | ||
run: | | ||
mkdir -p docs/api_reference | ||
cp -r libs/target/doc/* docs/api_reference | ||
- name: Link Checker | ||
uses: lycheeverse/lychee-action@v1 | ||
with: | ||
fail: true | ||
args: --base . --exclude-loopback --exclude-path="docs/api_reference" --require-https --verbose --no-progress docs | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v3 | ||
- name: Set up Docker Buildx | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
```rust title="demo/src/routes/mod.rs" hl_lines="1" | ||
pub mod greet; | ||
pub mod status; | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
```rust title="demo/src/blueprint.rs" hl_lines="9 10 11 12 13" | ||
\\ [...] | ||
pub fn blueprint() -> Blueprint { | ||
let mut bp = Blueprint::new(); | ||
register_common_constructors(&mut bp); | ||
add_telemetry_middleware(&mut bp); | ||
bp.route(GET, "/api/ping", f!(crate::routes::status::ping)); | ||
bp.route( | ||
GET, | ||
"/api/greet/:name", /* (1)! */ | ||
f!(crate::routes::greet::greet), | ||
); | ||
bp | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
```rust title="demo/src/routes/greet.rs" | ||
use pavex::response::Response; | ||
pub fn greet() -> Response { | ||
todo!() | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
```rust title="demo/src/routes/greet.rs" | ||
use pavex::request::RouteParams; | ||
use pavex::response::Response; | ||
#[RouteParams] | ||
pub struct GreetParams { | ||
pub name: String, /* (1)! */ | ||
} | ||
pub fn greet(params: RouteParams<GreetParams> /* (2)! */) -> Response { | ||
todo!() | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
```rust title="demo/src/blueprint.rs" hl_lines="4" | ||
\\ [...] | ||
pub fn blueprint() -> Blueprint { | ||
let mut bp = Blueprint::new(); | ||
register_common_constructors(&mut bp); | ||
\\ [...] | ||
bp | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
```rust title="demo/src/routes/greet.rs" | ||
use pavex::request::route::RouteParams; | ||
use pavex::response::Response; | ||
#[RouteParams] | ||
pub struct GreetParams { | ||
pub name: String, | ||
} | ||
pub fn greet(params: RouteParams<GreetParams>) -> Response { | ||
let GreetParams { name }/* (1)! */ = params.0; | ||
Response::ok() // (2)! | ||
.set_typed_body(format!("Hello, {name}!")) // (3)! | ||
.box_body() | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
```rust title="demo/src/blueprint.rs" hl_lines="4 5 6 7" | ||
\\ [...] | ||
fn register_common_constructors(bp: &mut Blueprint) { | ||
\\ [...] | ||
bp.constructor( | ||
f!(pavex::request::route::RouteParams::extract), | ||
Lifecycle::RequestScoped, | ||
) | ||
\\ [...] | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
```rust title="demo/src/routes/greet.rs" hl_lines="4" | ||
\\ [...] | ||
use crate::user_agent::UserAgent; | ||
\\ [...] | ||
pub fn greet(params: RouteParams<GreetParams>, user_agent: UserAgent /* (1)! */) -> Response { | ||
if let UserAgent::Unknown = user_agent { | ||
return Response::unauthorized() | ||
.set_typed_body("You must provide a `User-Agent` header") | ||
.box_body(); | ||
} | ||
\\ [...] | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
```rust title="demo/src/lib.rs" hl_lines="7" | ||
pub use blueprint::blueprint; | ||
mod blueprint; | ||
pub mod configuration; | ||
pub mod routes; | ||
pub mod telemetry; | ||
pub mod user_agent; | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
```rust title="demo/src/user_agent.rs" | ||
pub enum UserAgent { | ||
/// No `User-Agent` header was provided. | ||
Unknown, | ||
/// The value of the `User-Agent` header for the incoming request. | ||
Known(String), | ||
} | ||
``` |
Oops, something went wrong.