Carry the new layout fields through the hand-built fixtures

The record fixtures spell their metas and resolved layouts out in full,
so the name-from-input fields reach them as empty. `named_value!`'s
example moves to `ignore`: its `for T` arm implements a core-types trait
on the value type, which only core-types itself may do.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Dennis Kobert
2026-09-09 09:43:52 +00:00
parent 9b92edc0e9
commit 37c0d0852d
7 changed files with 49 additions and 14 deletions

View File

@@ -310,7 +310,7 @@ pub fn intern_name(name: &str) -> &'static str {
/// `Row: &T` and `Row: Option<&T>` declare a token naming a reference value,
/// whose payload the writing kernel parks in the arena.
///
/// ```
/// ```ignore
/// core_types::named_value! {
/// /// Plain rows, implemented on the value type itself.
/// for f64;
@@ -318,6 +318,9 @@ pub fn intern_name(name: &str) -> &'static str {
/// pub Text: &str;
/// }
/// ```
///
/// The `for T` arm implements this crate's trait on `T`, so rows over types
/// this crate does not own are declared here rather than by a caller.
#[macro_export]
macro_rules! named_value {
() => {};

View File

@@ -278,6 +278,7 @@ mod tests {
plan: Vec::new(),
layout: layout.clone(),
lane_invariant: u32::MAX,
named_writes: Vec::new(),
});
RecordExtract::new(graph, &layout)
}