pub struct Form8275Map {
pub form: String,
pub year: i32,
pub identity: IdentityCells,
pub rows: Vec<Form8275Row>,
pub part_ii_narrative: String,
pub part_ii_continuation: Vec<String>,
pub part_iv_continuation: Vec<String>,
}Expand description
The Form 8275 (Disclosure Statement, Rev. 10-2024) field map. One revision, aliased to every
SUPPORTED_YEAR — see F8275_MAP_2024.
Fields§
§form: String"f8275".
year: i32Tax year this map instance is stamped for (re-stamped by for_year; the field SET is identical
across every supported year — see the module doc).
identity: IdentityCellsThe FILER’s identity — “Name(s) shown on return” + “Identifying number shown on return”. The map
always DECLARES these cells (unlike Form 8283, whose 2017 revision structurally lacks an identity
block), but Task 16’s crypto-slice fill (fill_form_8275_slice) leaves them unwritten — mirroring
Form 8283’s own crypto-slice fill, which writes no identity either.
rows: Vec<Form8275Row>Part I rows (6 on this revision) — the per-copy capacity fill_form_8275 refuses beyond.
part_ii_narrative: StringPart II “Detailed Explanation” line 1 — the ONLY Part II line the filer’s narrative
(Printed8275::part_ii) is written to. Overflow goes to part_iv_continuation, NOT to
part_ii_continuation: the bundled PDF’s static page content prints the numerals “1 “..“6 “
beside p1-t80..p1-t85, and those numerals correspond to Part I’s rows — so writing one
combined narrative across them would attribute sentence fragments to items they do not explain.
part_ii_continuation: Vec<String>Part II “Detailed Explanation” lines 2–6 — p1-t81[0]..p1-t85[0] on the bundled Rev. 10-2024
PDF, in printed top-to-bottom order.
Mapped but deliberately NOT written. Retained so the map describes the form completely (and
so verify_flat authorizes them if a future per-item Part II numbering lands — see
design/f8275-part-ii-overflow/FOLLOWUPS.md), but the fill writes only line 1 and then spills to
Part IV, for the printed-numeral reason on part_ii_narrative.
part_iv_continuation: Vec<String>Page-2 Part IV “Explanations (continued from Parts I and/or II)” — p2-t1[0]..p2-t27[0],
in printed top-to-bottom order. The narrative overflows into these once Part II line 1 is
full. Per the IRS Rev. 10-2024 Specific Instructions (“Include the corresponding part and line
number from page 1”), the first line used carries a Part II, line 1 (continued): prefix, whose
width is budgeted before wrapping.
Implementations§
Source§impl Form8275Map
impl Form8275Map
Sourcepub fn for_year(year: i32) -> Result<Self, FormsError>
pub fn for_year(year: i32) -> Result<Self, FormsError>
The map for a supported tax year. ★ Form 8275 is REVISION-versioned, not tax-year-versioned:
the ONE bundled Rev. 10-2024 map/asset is aliased to EVERY SUPPORTED_YEAR (2017/2024/2025) —
only the year tag is re-stamped to the caller’s requested year. This is what keeps a promoted
2025 (or 2017) disposal’s Form 8275 export from being permanently refused for want of a
“2025 map” that would never structurally differ from this one.
Sourcepub fn field_names(&self) -> Vec<&str>
pub fn field_names(&self) -> Vec<&str>
Every field name the map targets (for the map_YYYY_matches_bundled_pdf_fieldset guard).
Sourcepub fn narrative_continuation_fields(&self) -> Vec<&str>
pub fn narrative_continuation_fields(&self) -> Vec<&str>
Every free-text narrative field this map declares, in printed top-to-bottom order:
part_ii_narrative (Part II line 1), then part_ii_continuation (Part II lines 2–6), then
part_iv_continuation (Part IV lines 1–27).
★ This is the map’s DECLARED shape, not the fill’s write set: the fill writes Part II line 1
then spills straight to Part IV, skipping lines 2–6 (see part_ii_continuation). Production-dead
as of the Part II overflow fix — retained for tests and for a future per-item Part II numbering.
Do not use it as “the sequence the narrative wraps across”.
Trait Implementations§
Source§impl Clone for Form8275Map
impl Clone for Form8275Map
Source§fn clone(&self) -> Form8275Map
fn clone(&self) -> Form8275Map
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more