refactor(tui): Replace StructTable with config-driven Value rendering - #1917
Merged
Conversation
Collapse all 25 TUI resource Item types to serde_json::Value, rendered purely from config.yaml at runtime. Deletes the StructTable trait, ResourceKey trait, impl_dynamic_item!, ColumnSpec, and the wide mode config surface (no UI toggle existed). Adds view_render free functions (headers/row/status/id_field) operating on &ViewConfig + &Value. Backfills config.yaml from #[structable] attributes scraped from each resource's openstack_types struct. Downstream changes: filter_carry_action, TryFrom delete builders, and test helpers now take Option<&Value> and read fields via view_render::get_str instead of typed access. Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Collapse all 25 TUI resource Item types to serde_json::Value, rendered
purely from config.yaml at runtime. Deletes the StructTable trait,
ResourceKey trait, impl_dynamic_item!, ColumnSpec, and the wide mode
config surface (no UI toggle existed).
Adds view_render free functions (headers/row/status/id_field) operating
on &ViewConfig + &Value. Backfills config.yaml from #[structable]
attributes scraped from each resource's openstack_types struct.
Downstream changes: filter_carry_action, TryFrom delete builders,
and test helpers now take Option<&Value> and read fields via
view_render::get_str instead of typed access.
Signed-off-by: Artem Goncharov artem.goncharov@gmail.com