From d28135ebbf2888eaffcfe223e9bb7732b93087ab Mon Sep 17 00:00:00 2001 From: Transaction Science Date: Wed, 21 Oct 2026 12:32:33 -0400 Subject: [PATCH] live_provenance: name the track's media kind TrackKind The enum's former name is also a company's name, which wai/'s public text does not carry (scripts/check-public-names.sh with the full list flags it). TrackKind matches track_kind(), the function that returns it. No behaviour changes. Co-Authored-By: Claude Opus 5.5 --- wai/wai-rs/src/live_provenance.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/wai/wai-rs/src/live_provenance.rs b/wai/wai-rs/src/live_provenance.rs index 8ac1b7d67..f7041c6b5 100644 --- a/wai/wai-rs/src/live_provenance.rs +++ b/wai/wai-rs/src/live_provenance.rs @@ -376,9 +376,9 @@ fn manifest_uuid(s: &str) -> Option<&str> { ok.then_some(u) } -/// A media kind of live-rooms §6.1. +/// A track's media kind, live-rooms §6.1. #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum MediaKind { +pub enum TrackKind { Audio, Video, Screen, @@ -386,7 +386,7 @@ pub enum MediaKind { /// The media kind of a track's rendering `----` (§5.1), whose /// room field is `room`. -pub fn track_kind(track: &str, room: &[u8; 32]) -> Option { +pub fn track_kind(track: &str, room: &[u8; 32]) -> Option { let (ns, layer) = track.split_once("--")?; let layer_ok = !layer.is_empty() && layer.bytes().all(|c| c.is_ascii_digit()) && (layer == "0" || !layer.starts_with('0')); let f: Vec<&str> = ns.split('-').collect(); @@ -397,9 +397,9 @@ pub fn track_kind(track: &str, room: &[u8; 32]) -> Option { return None; } match *kind { - "audio" => Some(MediaKind::Audio), - "video" => Some(MediaKind::Video), - "screen" => Some(MediaKind::Screen), + "audio" => Some(TrackKind::Audio), + "video" => Some(TrackKind::Video), + "screen" => Some(TrackKind::Screen), _ => None, } } @@ -645,7 +645,7 @@ pub fn disclosure(id: &Identity) -> (&'static str, Vec<([u8; 32], bool)>) { Identity::Track(s) => match &s.label { Label::Own { origin: o, model } => { let term = match (*o, track_kind(&s.track, &s.room)) { - (origin::HUMAN, Some(MediaKind::Screen)) => "screenCapture", + (origin::HUMAN, Some(TrackKind::Screen)) => "screenCapture", (origin::HUMAN, _) => "digitalCapture", (origin::MACHINE, _) => "trainedAlgorithmicMedia", _ => "compositeWithTrainedAlgorithmicMedia", @@ -654,7 +654,7 @@ pub fn disclosure(id: &Identity) -> (&'static str, Vec<([u8; 32], bool)>) { } Label::Inputs(v) => { let capture = |i: &Input| { - i.origin == origin::HUMAN && matches!(track_kind(&i.track, &s.room), Some(MediaKind::Audio | MediaKind::Video)) + i.origin == origin::HUMAN && matches!(track_kind(&i.track, &s.room), Some(TrackKind::Audio | TrackKind::Video)) }; let term = if v.iter().all(capture) { "compositeCapture" @@ -1777,8 +1777,8 @@ mod tests { fn a_track_rendering_names_its_kind() { let room = [0xab; 32]; let r = hex(&room); - assert_eq!(track_kind(&format!("{r}-{}-video--0", hex(&[1; 32])), &room), Some(MediaKind::Video)); - assert_eq!(track_kind(&format!("{r}-_stage-screen--1"), &room), Some(MediaKind::Screen)); + assert_eq!(track_kind(&format!("{r}-{}-video--0", hex(&[1; 32])), &room), Some(TrackKind::Video)); + assert_eq!(track_kind(&format!("{r}-_stage-screen--1"), &room), Some(TrackKind::Screen)); assert_eq!(track_kind(&format!("{r}-_stage-events--0"), &room), None); assert_eq!(track_kind(&format!("{r}-_stage-video--01"), &room), None); assert_eq!(track_kind(&format!("{}-_stage-video--0", hex(&[0xac; 32])), &room), None); -- 2.54.0 (Apple Git-157)