Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
294 changes: 293 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ members = ["crates/recorder"]
resolver = "2"

[workspace.lints.rust]
# WASAPI capture needs unsafe; until then, deny it so the skeleton cannot
# quietly grow an unsafe block that group 4 did not decide to add.
# Still denied, and group 4 did not need to lift it. WASAPI does need unsafe,
# but the `wasapi` crate holds it: the recorder drives a safe wrapper rather
# than hand-written FFI, so the blast radius of a mistake here is a wrong
# argument rather than undefined behaviour. Keeping the deny means an unsafe
# block cannot appear without someone deciding to change this line.
unsafe_code = "deny"
21 changes: 20 additions & 1 deletion crates/recorder/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,28 @@ version = "0.0.0"
edition = "2021"
publish = false

# A library plus a thin binary: everything the session does is testable without
# a process, and `main.rs` is left with the two things a test cannot have — real
# stdin and a real exit code.
[lib]
name = "recorder"
path = "src/lib.rs"

[[bin]]
name = "recorder"
path = "src/main.rs"

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
hound = "3.5"

# WASAPI is Windows-only, and so is this dependency. Everything above it — the
# session, the time map, the track writer, the JSON-RPC — is platform-neutral
# and tested everywhere, which is what keeps the capture layer a thin edge
# rather than the part correctness rests on.
[target.'cfg(windows)'.dependencies]
wasapi = "0.23"

[lints]
workspace = true
workspace = true
Loading
Loading