// Committed candidate `stage1_baseline` (hand-written, extracted from fragment.rs); provenance: height.provenance.json use crate::height::{definite_content_height, HeightInputs, HeightOutputs}; /// CSS 2.1 10.5/10.6.3/10.6.4/10.6.7 block height resolution. /// /// Unlike every other file in this directory, this one did not come from a model batch: /// it is `crate::height::resolve_baseline` itself, the hand-written rule /// `crates/layout/src/fragment.rs` ran inline before `specs/block-height-equation.md` /// extracted it, and it is correct by construction rather than deliberately wrong. That is /// what makes this seam's admission gate different from the others' /// (`specs/block-height-equation.md` -> "Admission is different here than on the other /// seams"): `generation::admit::beats_committed` replaces a committed candidate only on a /// strictly higher score, so a model batch that merely ties this leaves it in place, which /// is a valid outcome rather than a failure. /// /// Delegating to `resolve_baseline` rather than restating its arithmetic is deliberate: /// the two can never drift apart while they are the same code. A model candidate that does /// score strictly higher replaces this whole file with its own source, at which point the /// delegation goes away with it. pub fn resolve(inputs: &HeightInputs) -> HeightOutputs { let float_bottom = inputs.lowest_float_bottom.unwrap_or(0.0); let content_height = definite_content_height(inputs.resolved_height, inputs.border_box_sizing, inputs.edge_tb) .unwrap_or(inputs.content_height_from_children.max(float_bottom)); HeightOutputs { content_height } }