Repository navigation
Handle NULL line, font and foreground attribute references (companion to AgIsoStack-rs#48) - #36
Open
Arjan-Woltjer wants to merge 1 commit into
Conversation
AgIsoStack-rs is making line_attributes, font_attributes and Input Boolean foreground_colour NullableObjectId, because ISO 11783-6 allows NULL there and real pools (John Deere) use it. Adapt the Designer the same way it already treats fill_attributes: a "None" entry in the selectors, and NULL-aware rendering -- a NULL-line shape keeps its fill and gets no outline, NULL font attributes render with the default font instead of a red error, NULL foreground colour falls back to black. New objects start with these references at NULL instead of pointing at object 0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Sep 11, 2026
Arjan-Woltjer
marked this pull request as ready for review
September 11, 2026 14:56
There was a problem hiding this comment.
🔵 Needs a closer look
The changes span configuration, defaults, and rendering behavior and warrant human review.
Pull request overview
Updates the Designer to support legal NULL line, font, and foreground attribute references.
Changes:
- Adds NULL-aware selectors and conditional view links.
- Implements rendering fallbacks for nullable references.
- Initializes new references as NULL and exposes default font attributes.
File summaries
| File | Description |
|---|---|
src/object_rendering.rs |
Handles nullable rendering references. |
src/object_defaults.rs |
Initializes affected references as NULL. |
src/object_configuring.rs |
Adds “None” options and conditional view links. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This branch has not been deployed
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.
Companion to Open-Agriculture/AgIsoStack-rs#48; fixes #35.
Depends on the AgIsoStack-rs change landing on
daan/terminal-designer-changesfirst — until then this does not build against the pinned dependency, which is why it is a draft.Cargo.tomlis deliberately left pointing at upstream.What
AgIsoStack-rs is making
line_attributes(Output Line / Rectangle / Ellipse / Polygon),font_attributes(Input/Output String/Number) and Input Booleanforeground_colourNullableObjectId, because ISO 11783-6 allows NULL there and real pools (John Deere) use it. This adapts the Designer, following exactly how it already handlesfill_attributes:default_font_attributesis madepubfor the rendering fallback.Verification
Built locally against the AgIsoStack-rs branch:
cargo check --lib,cargo test --libandcargo fmt --checkclean;cargo check --libwarnings are unchanged from the base branch. Loading the John Deere StarFire pool then gives all 9 619 objects and its Working Set; the 31-byte reproducer from the issue gives 3 objects and a Working Set. Not run: the wasm32 check (no platform-specific code touched).🤖 Generated with Claude Code