aboutsummaryrefslogtreecommitdiff
path: root/examples/test-examples.toml
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-04 13:26:48 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-04 13:26:48 +0800
commit4588e17f7ddacd8391a5c881a209735e08d48797 (patch)
tree2b513f4d4f8a18ebd3a34cff7c0fb8abf5787321 /examples/test-examples.toml
parentf7862affd74ac3b129f9e9791a4cd4e1c7e3e6d1 (diff)
feat: add entry metadata system with compile-time typed values
Add `Metadata<B>` trait and `#[metadata(Entry)]` attribute macro to attach arbitrary, compile-time-typed metadata to entries. Implement `ProgramCollect::get_metadata<T>()` for runtime retrieval, backed by a global registry populated by `register_metadata!`. Extend `pathf` with `MetadataPattern` to resolve metadata types across modules at build time. Add two examples demonstrating metadata usage with and without pathf integration.
Diffstat (limited to 'examples/test-examples.toml')
-rw-r--r--examples/test-examples.toml35
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/test-examples.toml b/examples/test-examples.toml
index b74c9a5..03df5e1 100644
--- a/examples/test-examples.toml
+++ b/examples/test-examples.toml
@@ -327,3 +327,38 @@ expect.result = "Hello, Alice"
command = "goodbye"
expect.exit-code = 0
expect.result = "Goodbye!"
+
+[[test.example-metadata]]
+command = "greet"
+expect.exit-code = 0
+expect.result = "Hello, World!"
+
+[[test.example-metadata]]
+command = "greet Alice"
+expect.exit-code = 0
+expect.result = "Hello, Alice!"
+
+[[test.example-metadata]]
+command = "desc"
+expect.exit-code = 0
+expect.result = "EntryGreet desc = ok"
+
+[[test.example-metadata]]
+command = "nodoc"
+expect.exit-code = 0
+expect.result = "EntryDescription has no description"
+
+[[test.example-combine-pathf-metadata]]
+command = "hello"
+expect.exit-code = 0
+expect.result = "Hello, World!"
+
+[[test.example-combine-pathf-metadata]]
+command = "hello Alice"
+expect.exit-code = 0
+expect.result = "Hello, Alice!"
+
+[[test.example-combine-pathf-metadata]]
+command = "desc"
+expect.exit-code = 0
+expect.result = "EntryHello desc = okay"