From fc9c8bfba799aadff79f2cec2e153fce01e56669 Mon Sep 17 00:00:00 2001 From: Andy Leiserson Date: Tue, 11 Mar 2025 18:27:02 -0700 Subject: [PATCH] refactor(msl-out): add `NamedKeyExt` trait with `local` helper method -- Co-authored-by: Liam Murphy Co-Authored-By: Erich Gubler --- naga/src/back/msl/writer.rs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/naga/src/back/msl/writer.rs b/naga/src/back/msl/writer.rs index 1bae7f2f62..206e546687 100644 --- a/naga/src/back/msl/writer.rs +++ b/naga/src/back/msl/writer.rs @@ -599,11 +599,23 @@ impl crate::Type { } } +#[derive(Clone, Copy)] enum FunctionOrigin { Handle(Handle), EntryPoint(proc::EntryPointIndex), } +trait NameKeyExt { + fn local(origin: FunctionOrigin, local_handle: Handle) -> NameKey { + match origin { + FunctionOrigin::Handle(handle) => NameKey::FunctionLocal(handle, local_handle), + FunctionOrigin::EntryPoint(idx) => NameKey::EntryPointLocal(idx, local_handle), + } + } +} + +impl NameKeyExt for NameKey {} + /// A level of detail argument. /// /// When [`BoundsCheckPolicy::Restrict`] applies to an [`ImageLoad`] access, we @@ -1750,14 +1762,7 @@ impl Writer { write!(self.out, "{name}")?; } crate::Expression::LocalVariable(handle) => { - let name_key = match context.origin { - FunctionOrigin::Handle(fun_handle) => { - NameKey::FunctionLocal(fun_handle, handle) - } - FunctionOrigin::EntryPoint(ep_index) => { - NameKey::EntryPointLocal(ep_index, handle) - } - }; + let name_key = NameKey::local(context.origin, handle); let name = &self.names[&name_key]; write!(self.out, "{name}")?; }