From 46a922da67faa1d6943f9e7ec2d43fcffdeabe17 Mon Sep 17 00:00:00 2001 From: dzejkop Date: Mon, 6 Jul 2026 00:32:03 +0200 Subject: [PATCH] fmt & clippy --- crates/tangled-api/tests/generated.rs | 7 +++- crates/tangled-cli/src/commands/auth.rs | 6 ++- crates/tangled-cli/src/commands/issue.rs | 40 ++++++++---------- crates/tangled-cli/src/commands/knot.rs | 7 +--- crates/tangled-cli/src/commands/pr.rs | 15 +++---- crates/tangled-cli/src/commands/repo.rs | 23 +++-------- crates/tangled-cli/src/commands/spindle.rs | 48 ++++++---------------- crates/tangled-cli/src/ops/pull.rs | 3 +- crates/tangled-cli/src/ops/repo.rs | 28 ++++--------- crates/tangled-cli/src/ops/secrets.rs | 9 +--- crates/tangled-cli/src/ops/service_auth.rs | 7 +--- xtask/src/codegen.rs | 16 +++++--- xtask/src/main.rs | 11 +---- xtask/tests/golden.rs | 3 +- 14 files changed, 78 insertions(+), 145 deletions(-) diff --git a/crates/tangled-api/tests/generated.rs b/crates/tangled-api/tests/generated.rs index 869b5a3..490a8d4 100644 --- a/crates/tangled-api/tests/generated.rs +++ b/crates/tangled-api/tests/generated.rs @@ -45,7 +45,12 @@ async fn send_surfaces_xrpc_error_shape() { .await .unwrap_err(); match err { - xrpc::XrpcError::Status { status, error, message, .. } => { + xrpc::XrpcError::Status { + status, + error, + message, + .. + } => { assert_eq!(status.as_u16(), 400); assert_eq!(error.as_deref(), Some("RepoNotFound")); assert_eq!(message.as_deref(), Some("no such repo")); diff --git a/crates/tangled-cli/src/commands/auth.rs b/crates/tangled-cli/src/commands/auth.rs index 460481d..332a334 100644 --- a/crates/tangled-cli/src/commands/auth.rs +++ b/crates/tangled-cli/src/commands/auth.rs @@ -65,7 +65,11 @@ async fn status(_cli: &Cli) -> Result<()> { let mgr = SessionManager::default(); match mgr.load()? { Some(s) => { - let kind = if s.oauth.is_some() { "OAuth" } else { "app password" }; + let kind = if s.oauth.is_some() { + "OAuth" + } else { + "app password" + }; println!("Logged in as '{}' ({}) [{}]", s.handle, s.did, kind); } None => println!("Not logged in. Run: tangled api auth login"), diff --git a/crates/tangled-cli/src/commands/issue.rs b/crates/tangled-cli/src/commands/issue.rs index 1150cec..24a5e9d 100644 --- a/crates/tangled-cli/src/commands/issue.rs +++ b/crates/tangled-cli/src/commands/issue.rs @@ -2,10 +2,10 @@ use crate::cli::{ Cli, IssueCommand, IssueCommentArgs, IssueCreateArgs, IssueEditArgs, IssueListArgs, IssueShowArgs, }; +use crate::ops::types::Issue; use anyhow::{anyhow, Result}; use dialoguer::Input; use std::io::IsTerminal; -use crate::ops::types::Issue; pub async fn run(_cli: &Cli, cmd: IssueCommand) -> Result<()> { match cmd { @@ -52,9 +52,7 @@ async fn list(args: IssueListArgs, mode: IssueMode) -> Result<()> { let repo_filter_refs = if let Some(repo) = &repo_arg { let (owner, name) = parse_repo_ref(repo, &session.handle); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; if let Some(context) = inferred.as_ref() { validate_remote_matches_repo(context, &info)?; } @@ -115,23 +113,19 @@ async fn list(args: IssueListArgs, mode: IssueMode) -> Result<()> { cached.clone() } else if let Some((repo_did, repo_rkey)) = parse_repo_at_uri(&it.issue.repo) { // Fetch and format repo info - let formatted = match crate::ops::repo::get_repo_by_rkey( - &pds, - &repo_did, - &repo_rkey, - &auth, - ) - .await - { - Ok(repo) => { - let handle = - crate::ops::repo::resolve_did_to_handle(&pds, &repo_did, &auth) - .await - .unwrap_or(repo_did.clone()); - format!("{}/{}", handle, repo.name) - } - Err(_) => it.issue.repo.clone(), - }; + let formatted = + match crate::ops::repo::get_repo_by_rkey(&pds, &repo_did, &repo_rkey, &auth) + .await + { + Ok(repo) => { + let handle = + crate::ops::repo::resolve_did_to_handle(&pds, &repo_did, &auth) + .await + .unwrap_or(repo_did.clone()); + format!("{}/{}", handle, repo.name) + } + Err(_) => it.issue.repo.clone(), + }; repo_cache.insert(it.issue.repo.clone(), formatted.clone()); formatted } else { @@ -177,9 +171,7 @@ async fn create(args: IssueCreateArgs, mode: IssueMode) -> Result<()> { return Err(anyhow!("--repo is required for tangled api issue create")); }; let (owner, name) = parse_repo_ref(repo, &session.handle); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; if let Some(context) = inferred.as_ref() { validate_remote_matches_repo(context, &info)?; } diff --git a/crates/tangled-cli/src/commands/knot.rs b/crates/tangled-cli/src/commands/knot.rs index e14a044..48ae0e8 100644 --- a/crates/tangled-cli/src/commands/knot.rs +++ b/crates/tangled-cli/src/commands/knot.rs @@ -98,9 +98,7 @@ async fn migrate(args: KnotMigrateArgs) -> Result<()> { .clone() .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); - let info = - crate::ops::repo::get_repo_info(&pds, owner, &name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, &name, &auth).await?; // Build a publicly accessible source URL on tangled.org for the existing repo let owner_path = if owner.starts_with('@') { @@ -134,8 +132,7 @@ async fn migrate(args: KnotMigrateArgs) -> Result<()> { // Update the PDS record to point to the new knot if args.update_record { - crate::ops::repo::update_repo_knot(&pds, &session.did, &info.rkey, &args.to, &auth) - .await?; + crate::ops::repo::update_repo_knot(&pds, &session.did, &info.rkey, &args.to, &auth).await?; } println!("Migrated repo '{}' to knot {}", name, args.to); diff --git a/crates/tangled-cli/src/commands/pr.rs b/crates/tangled-cli/src/commands/pr.rs index eea6ca8..c0fb54e 100644 --- a/crates/tangled-cli/src/commands/pr.rs +++ b/crates/tangled-cli/src/commands/pr.rs @@ -42,9 +42,7 @@ async fn list(args: PrListArgs) -> Result<()> { .unwrap_or_else(|| "https://bsky.social".into()); let target_repo_refs = if let Some(repo) = &args.repo { let (owner, name) = parse_repo_ref(repo, &session.handle); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; Some(vec![info.issue_repo_ref(), info.repo_at_uri()]) } else { None @@ -92,9 +90,7 @@ async fn create(args: PrCreateArgs, mode: CreateMode) -> Result<()> { return Err(anyhow!("--repo is required for tangled api pr create")); }; let (owner, name) = parse_repo_ref(repo, ""); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; if let Some(context) = inferred.as_ref() { validate_remote_matches_repo(context, &info)?; } @@ -321,8 +317,8 @@ async fn describe_repo_for_web_url( pds_base: &str, auth: &crate::ops::auth::PdsAuth, ) -> Result<(String, String, Option)> { - let resolver_base = std::env::var("TANGLED_API_BASE") - .unwrap_or_else(|_| crate::ops::DEFAULT_KNOT.to_string()); + let resolver_base = + std::env::var("TANGLED_API_BASE").unwrap_or_else(|_| crate::ops::DEFAULT_KNOT.to_string()); let described = crate::ops::repo::describe_repo(&resolver_base, repo_did, None).await?; let repo = crate::ops::repo::get_repo_by_rkey(pds_base, &described.owner_did, &described.rkey, auth) @@ -764,8 +760,7 @@ async fn resolve_merge_target( } else if target_repo.starts_with("did:") { let resolver_base = std::env::var("TANGLED_API_BASE") .unwrap_or_else(|_| crate::ops::DEFAULT_KNOT.to_string()); - let described = - crate::ops::repo::describe_repo(&resolver_base, target_repo, None).await?; + let described = crate::ops::repo::describe_repo(&resolver_base, target_repo, None).await?; (described.owner_did, described.rkey) } else { return Err(anyhow!("Invalid target repo reference: {}", target_repo)); diff --git a/crates/tangled-cli/src/commands/repo.rs b/crates/tangled-cli/src/commands/repo.rs index 5365ffc..b245516 100644 --- a/crates/tangled-cli/src/commands/repo.rs +++ b/crates/tangled-cli/src/commands/repo.rs @@ -102,9 +102,7 @@ async fn clone(args: RepoCloneArgs) -> Result<()> { .clone() .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); - let info = - crate::ops::repo::get_repo_info(&pds, owner, &name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, &name, &auth).await?; let remote = if args.https { let owner_path = if owner.starts_with('@') { @@ -165,9 +163,7 @@ async fn info(args: RepoInfoArgs) -> Result<()> { .clone() .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); - let info = - crate::ops::repo::get_repo_info(&pds, owner, &name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, &name, &auth).await?; println!("NAME: {}", info.name); println!("OWNER DID: {}", info.did); @@ -224,11 +220,8 @@ async fn delete(args: RepoDeleteArgs) -> Result<()> { .clone() .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); - let record = - crate::ops::repo::get_repo_info(&pds, owner, &name, &auth) - .await?; - crate::ops::repo::delete_repo(&record.knot, &record.did, &name, &pds, &auth) - .await?; + let record = crate::ops::repo::get_repo_info(&pds, owner, &name, &auth).await?; + crate::ops::repo::delete_repo(&record.knot, &record.did, &name, &pds, &auth).await?; println!("Deleted repo '{}'", name); Ok(()) } @@ -242,9 +235,7 @@ async fn star(args: RepoRefArgs) -> Result<()> { .clone() .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); - let info = - crate::ops::repo::get_repo_info(&pds, owner, &name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, &name, &auth).await?; let subject = format!("at://{}/sh.tangled.repo/{}", info.did, info.rkey); crate::ops::repo::star_repo(&pds, &auth, &subject, &session.did).await?; println!("Starred {}/{}", owner, name); @@ -260,9 +251,7 @@ async fn unstar(args: RepoRefArgs) -> Result<()> { .clone() .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); - let info = - crate::ops::repo::get_repo_info(&pds, owner, &name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, &name, &auth).await?; let subject = format!("at://{}/sh.tangled.repo/{}", info.did, info.rkey); crate::ops::repo::unstar_repo(&pds, &auth, &subject, &session.did).await?; println!("Unstarred {}/{}", owner, name); diff --git a/crates/tangled-cli/src/commands/spindle.rs b/crates/tangled-cli/src/commands/spindle.rs index 5a04771..8299baf 100644 --- a/crates/tangled-cli/src/commands/spindle.rs +++ b/crates/tangled-cli/src/commands/spindle.rs @@ -29,9 +29,7 @@ async fn list(args: SpindleListArgs) -> Result<()> { args.repo.as_deref().unwrap_or(&session.handle), &session.handle, ); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; let pipelines = crate::ops::repo::list_pipelines(&pds, &info.did, &auth).await?; @@ -80,9 +78,7 @@ async fn config(args: SpindleConfigArgs) -> Result<()> { args.repo.as_deref().unwrap_or(&session.handle), &session.handle, ); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; let new_spindle = if args.disable { None @@ -95,8 +91,7 @@ async fn config(args: SpindleConfigArgs) -> Result<()> { return Err(anyhow!("Invalid flags combination")); }; - crate::ops::repo::update_repo_spindle(&pds, &info.did, &info.rkey, new_spindle, &auth) - .await?; + crate::ops::repo::update_repo_spindle(&pds, &info.did, &info.rkey, new_spindle, &auth).await?; if args.disable { println!("Disabled spindle for {}/{}", owner, name); @@ -138,8 +133,8 @@ async fn logs(args: SpindleLogsArgs) -> Result<()> { .unwrap_or_else(|| "https://bsky.social".into()); // Get repo info from current directory context or default to user's handle let auth = crate::ops::auth::PdsAuth::from_session(&session)?; - let info = crate::ops::repo::get_repo_info(&pds, &session.handle, &session.handle, &auth) - .await?; + let info = + crate::ops::repo::get_repo_info(&pds, &session.handle, &session.handle, &auth).await?; (info.knot, info.rkey, parts[0].to_string()) } else { return Err(anyhow!( @@ -207,9 +202,7 @@ async fn secret_list(args: SpindleSecretListArgs) -> Result<()> { .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); let (owner, name) = parse_repo_ref(&args.repo, &session.handle); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; let repo_at = format!("at://{}/sh.tangled.repo/{}", info.did, info.rkey); // Get spindle base from repo config or use default @@ -240,9 +233,7 @@ async fn secret_add(args: SpindleSecretAddArgs) -> Result<()> { .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); let (owner, name) = parse_repo_ref(&args.repo, &session.handle); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; let repo_at = format!("at://{}/sh.tangled.repo/{}", info.did, info.rkey); // Get spindle base from repo config or use default @@ -276,15 +267,8 @@ async fn secret_add(args: SpindleSecretAddArgs) -> Result<()> { args.value }; - crate::ops::secrets::add_repo_secret( - &spindle_base, - &pds, - &auth, - &repo_at, - &args.key, - &value, - ) - .await?; + crate::ops::secrets::add_repo_secret(&spindle_base, &pds, &auth, &repo_at, &args.key, &value) + .await?; println!("Added secret '{}' to {}", args.key, args.repo); Ok(()) } @@ -298,9 +282,7 @@ async fn secret_remove(args: SpindleSecretRemoveArgs) -> Result<()> { .or_else(|| std::env::var("TANGLED_PDS_BASE").ok()) .unwrap_or_else(|| "https://bsky.social".into()); let (owner, name) = parse_repo_ref(&args.repo, &session.handle); - let info = - crate::ops::repo::get_repo_info(&pds, owner, name, &auth) - .await?; + let info = crate::ops::repo::get_repo_info(&pds, owner, name, &auth).await?; let repo_at = format!("at://{}/sh.tangled.repo/{}", info.did, info.rkey); // Get spindle base from repo config or use default @@ -309,14 +291,8 @@ async fn secret_remove(args: SpindleSecretRemoveArgs) -> Result<()> { .clone() .or_else(|| std::env::var("TANGLED_SPINDLE_BASE").ok()) .unwrap_or_else(|| "https://spindle.tangled.sh".to_string()); - crate::ops::secrets::remove_repo_secret( - &spindle_base, - &pds, - &auth, - &repo_at, - &args.key, - ) - .await?; + crate::ops::secrets::remove_repo_secret(&spindle_base, &pds, &auth, &repo_at, &args.key) + .await?; println!("Removed secret '{}' from {}", args.key, args.repo); Ok(()) } diff --git a/crates/tangled-cli/src/ops/pull.rs b/crates/tangled-cli/src/ops/pull.rs index e8e644f..9ce7547 100644 --- a/crates/tangled-cli/src/ops/pull.rs +++ b/crates/tangled-cli/src/ops/pull.rs @@ -228,8 +228,7 @@ pub async fn merge_pull( // Fetch the pull request to get patch and target branch let pull = get_pull_record(pds_base, pull_did, pull_rkey, auth).await?; - let token = - service_auth::mint(pds_base, auth, knot_base, tangled_repo::merge::NSID).await?; + let token = service_auth::mint(pds_base, auth, knot_base, tangled_repo::merge::NSID).await?; let patch = pull_patch(pds_base, pull_did, &pull, auth).await?; let input = tangled_repo::merge::Input { diff --git a/crates/tangled-cli/src/ops/repo.rs b/crates/tangled-cli/src/ops/repo.rs index 6eaf054..410212f 100644 --- a/crates/tangled-cli/src/ops/repo.rs +++ b/crates/tangled-cli/src/ops/repo.rs @@ -8,16 +8,12 @@ use tangled_api::xrpc; use super::auth::PdsAuth; use super::types::{ - CreateRepoOptions, DefaultBranch, Language, Languages, Pipeline, PipelineRecord, - RepoDescribe, RepoRecord, Repository, StarRecord, REPO_COLLECTION, + CreateRepoOptions, DefaultBranch, Language, Languages, Pipeline, PipelineRecord, RepoDescribe, + RepoRecord, Repository, StarRecord, REPO_COLLECTION, }; use super::{http, service_auth, uri_did, uri_rkey}; -pub async fn resolve_handle_to_did( - pds_base: &str, - user: &str, - auth: &PdsAuth, -) -> Result { +pub async fn resolve_handle_to_did(pds_base: &str, user: &str, auth: &PdsAuth) -> Result { if user.starts_with("did:") { return Ok(user.to_string()); } @@ -109,8 +105,7 @@ pub async fn create_repo(knot_base: &str, opts: CreateRepoOptions<'_>) -> Result let created: atproto_repo::create_record::Output = opts.auth.send(rb).await?; // Extract rkey from at-uri: at://did/collection/rkey - let rkey = - uri_rkey(&created.uri).ok_or_else(|| anyhow!("failed to parse rkey from uri"))?; + let rkey = uri_rkey(&created.uri).ok_or_else(|| anyhow!("failed to parse rkey from uri"))?; // 2) Obtain a service auth token for the knot (aud = did:web:) let token = service_auth::mint( @@ -234,11 +229,7 @@ pub async fn get_repo_by_rkey( Ok(serde_json::from_value(out.value)?) } -pub async fn resolve_did_to_handle( - pds_base: &str, - did: &str, - auth: &PdsAuth, -) -> Result { +pub async fn resolve_did_to_handle(pds_base: &str, did: &str, auth: &PdsAuth) -> Result { let params = atproto_repo::describe_repo::Params { repo: did.to_string(), }; @@ -281,8 +272,7 @@ pub async fn delete_repo( let rb = atproto_repo::delete_record(http(), pds_base, &input); auth.send_unit(rb).await?; - let token = - service_auth::mint(pds_base, auth, knot_base, tangled_repo::delete::NSID).await?; + let token = service_auth::mint(pds_base, auth, knot_base, tangled_repo::delete::NSID).await?; let input = tangled_repo::delete::Input { did: did.to_string(), name: name.to_string(), @@ -386,8 +376,7 @@ pub async fn unstar_repo( subject_at_uri: &str, user_did: &str, ) -> Result<()> { - let records = - list_collection_records(pds_base, user_did, "sh.tangled.feed.star", auth).await?; + let records = list_collection_records(pds_base, user_did, "sh.tangled.feed.star", auth).await?; let mut rkey = None; for item in records { let value: StarRecord = match serde_json::from_value(item.value) { @@ -419,8 +408,7 @@ pub async fn list_pipelines( repo_did: &str, auth: &PdsAuth, ) -> Result> { - let records = - list_collection_records(pds_base, repo_did, "sh.tangled.pipeline", auth).await?; + let records = list_collection_records(pds_base, repo_did, "sh.tangled.pipeline", auth).await?; let mut out = vec![]; for item in records { let pipeline: Pipeline = serde_json::from_value(item.value)?; diff --git a/crates/tangled-cli/src/ops/secrets.rs b/crates/tangled-cli/src/ops/secrets.rs index 52aa3c9..a71db17 100644 --- a/crates/tangled-cli/src/ops/secrets.rs +++ b/crates/tangled-cli/src/ops/secrets.rs @@ -37,13 +37,8 @@ pub async fn add_repo_secret( key: &str, value: &str, ) -> Result<()> { - let token = service_auth::mint( - pds_base, - auth, - service_base, - tangled_repo::add_secret::NSID, - ) - .await?; + let token = + service_auth::mint(pds_base, auth, service_base, tangled_repo::add_secret::NSID).await?; let input = tangled_repo::add_secret::Input { repo: repo_at.to_string(), key: key.to_string(), diff --git a/crates/tangled-cli/src/ops/service_auth.rs b/crates/tangled-cli/src/ops/service_auth.rs index 0aafe56..3ef8d96 100644 --- a/crates/tangled-cli/src/ops/service_auth.rs +++ b/crates/tangled-cli/src/ops/service_auth.rs @@ -8,12 +8,7 @@ use super::auth::PdsAuth; /// Mints a ServiceAuth token on the PDS for the service at `service_base` /// (a knot or spindle base URL); the audience is `did:web:` and the /// token is bound to the XRPC method `lxm` (knots reject unbound tokens). -pub async fn mint( - pds_base: &str, - auth: &PdsAuth, - service_base: &str, - lxm: &str, -) -> Result { +pub async fn mint(pds_base: &str, auth: &PdsAuth, service_base: &str, lxm: &str) -> Result { let trimmed = service_base.trim_end_matches('/'); let host = trimmed .strip_prefix("https://") diff --git a/xtask/src/codegen.rs b/xtask/src/codegen.rs index cdfa89e..f9e9826 100644 --- a/xtask/src/codegen.rs +++ b/xtask/src/codegen.rs @@ -75,7 +75,9 @@ fn snake(seg: &str) -> String { } /// Type names that would shadow prelude/std types used by the generated code. -const RESERVED_TYPE_NAMES: &[&str] = &["String", "Option", "Vec", "Box", "Default", "Clone", "Debug"]; +const RESERVED_TYPE_NAMES: &[&str] = &[ + "String", "Option", "Vec", "Box", "Default", "Clone", "Debug", +]; fn pascal(name: &str) -> String { let s = name.to_upper_camel_case(); @@ -128,10 +130,10 @@ pub fn generate(lexicons_dir: &Path) -> Result { json_files.sort(); for path in &json_files { - let text = std::fs::read_to_string(path) - .with_context(|| format!("reading {}", path.display()))?; - let doc: LexiconDoc = serde_json::from_str(&text) - .with_context(|| format!("parsing {}", path.display()))?; + let text = + std::fs::read_to_string(path).with_context(|| format!("reading {}", path.display()))?; + let doc: LexiconDoc = + serde_json::from_str(&text).with_context(|| format!("parsing {}", path.display()))?; let source = path .strip_prefix(lexicons_dir) .unwrap() @@ -430,7 +432,9 @@ fn emit_struct( let has_type_prop = def.properties.contains_key("type"); if kind == StructKind::Record && !has_type_prop { - out.push_str(" /// Record type discriminator (`$type`); set to [`NSID`] when writing.\n"); + out.push_str( + " /// Record type discriminator (`$type`); set to [`NSID`] when writing.\n", + ); out.push_str( " #[serde(rename = \"$type\", skip_serializing_if = \"Option::is_none\", default)]\n", ); diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 27fce8a..4f70589 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -65,10 +65,7 @@ fn run_codegen(check: bool) -> Result<()> { if check { if stale.is_empty() && stray.is_empty() { - println!( - "generated code is up to date ({} files)", - files.len() - ); + println!("generated code is up to date ({} files)", files.len()); return Ok(()); } for p in &stale { @@ -124,11 +121,7 @@ fn rustfmt(source: &str) -> Result { .stderr(std::process::Stdio::piped()) .spawn() .context("spawning rustfmt (is it installed?)")?; - child - .stdin - .as_mut() - .unwrap() - .write_all(source.as_bytes())?; + child.stdin.as_mut().unwrap().write_all(source.as_bytes())?; let output = child.wait_with_output()?; if !output.status.success() { bail!( diff --git a/xtask/tests/golden.rs b/xtask/tests/golden.rs index a9056b6..8803aa5 100644 --- a/xtask/tests/golden.rs +++ b/xtask/tests/golden.rs @@ -39,7 +39,8 @@ fn generated_output_matches_golden_files() { ); for (path, content) in &generated.files { assert_eq!( - content, &expected[path], + content, + &expected[path], "{} changed; run XTASK_BLESS=1 cargo test -p xtask and review", path.display() ); -- 2.51.2