Skip to main content

Form8275Map

Struct Form8275Map 

Source
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: i32

Tax 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: IdentityCells

The 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: String

Part 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

Source

pub fn parse(toml_src: &str) -> Result<Self, Error>

Parse the committed TOML.

Source

pub fn ty2024() -> Self

The bundled Rev. 10-2024 map, as committed (year field reads 2024).

Source

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.

Source

pub fn field_names(&self) -> Vec<&str>

Every field name the map targets (for the map_YYYY_matches_bundled_pdf_fieldset guard).

Source

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

Source§

fn clone(&self) -> Form8275Map

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Form8275Map

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Form8275Map

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V