pub enum DecoEntry {
Inline {
deco: Value,
version: RustyfiVersion,
},
Block {
pads: Paddings,
width: Length,
decoset: [Value; 4],
version: RustyfiVersion,
},
InlineBreakable {
pads: Paddings,
decoset: [Value; 4],
version: RustyfiVersion,
},
}Expand description
See Interp::decos.
Each entry records the interp.version active when the deco closure was
CAPTURED (DecoEntry::version). Reading interp.version at FIRE time
instead is wrong: the consumer (primitives::apply_deco, called only from
lib.rs’s post-page-break hook-firing pass) always runs outside every
VersionScope’s save/restore window, so in a cross-version program the
flag there is the ENTRY’s generation, never the deco author’s — concretely,
uline, enumitem and figbox are ordinary 0.0.6 packages with their own
0.0.6 graphics list decos; they register while interp.version is
V0_0 and get fired while it is V0_1, so coerce_graphics_result
demanded a single graphics and got a list.
Variants§
Inline
Block
Fields
version: RustyfiVersionInlineBreakable
inline-frame-breakable’s deco set, behind a
PureHorzBox::InlineFrameMarker pair. The inline twin of Block
above: the frame may split across LINE breaks rather than page breaks,
so fire_hooks picks decoS/decoH/decoM/decoT per line
fragment the same way. pads is kept for the vertical half only —
paddingL/paddingR are already spliced into the box stream as
FixedEmpty (upstream append_horz_padding), so only t/b are
read back here, to size each fragment’s rect.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for DecoEntry
impl !Send for DecoEntry
impl !Sync for DecoEntry
impl !UnwindSafe for DecoEntry
impl Freeze for DecoEntry
impl Unpin for DecoEntry
impl UnsafeUnpin for DecoEntry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more