Skip to content

Add typed SliM fixture values - #5

Merged
killertux merged 1 commit into
masterfrom
feat/slim-typed-values
Sep 10, 2026
Merged

killertux merged 1 commit into
masterfrom
feat/slim-typed-values

Conversation

@killertux

Copy link
Copy Markdown
Owner

SliM fixture calls currently flatten every argument and result to strings, which prevents recursive lists, distinct null/void values, typed symbols, and object-valued fixture chaining. This change adds a separate runtime value model and migrates the server, wire instructions, conversion traits, and fixture proc macro to use it.

The new boundary supports recursive lists, primitives, arrays, Option, fallible results, chrono::NaiveDate in the documented dd-MMM-yyyy format, custom converters, and opaque or callable object handles. callAndAssign and assign retain structured values, while responses serialize them recursively. Wrong method arity now returns the standard NO_METHOD_IN_CLASS exception, and textual lists use the documented [a, b] form.

The fixture macro now validates arity before conversion, supports generic fixture types, skips associated helper functions, and reports unsupported signatures with syn::Error. Checked trybuild cases cover its diagnostics. The Rust SliM README includes the manual-fixture migration path.

Validation:

  • cargo test --workspace --all-features
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • git diff --check

An independent review against the local feature-completeness plan and the official SliM V0.5 protocol found no remaining issues in this slice.

@killertux
killertux merged commit 64fcb52 into master Sep 10, 2026
10 checks passed
@killertux
killertux deleted the feat/slim-typed-values branch September 10, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant