pub enum BookPage {
Text {
text: String,
title: Option<String>,
},
Spotlight {
item: ItemDef,
title: Option<String>,
text: Option<String>,
},
Crafting {
recipe_id: String,
text: Option<String>,
},
Smelting {
recipe_id: String,
text: Option<String>,
},
Image {
texture: String,
title: Option<String>,
text: Option<String>,
border: bool,
},
Entity {
entity_type: String,
name: Option<String>,
text: Option<String>,
},
Relations {
entries: Vec<String>,
text: Option<String>,
},
Empty,
Pattern {
op_id: String,
anchor: String,
input: String,
output: String,
text: String,
},
Svg {
data: String,
title: Option<String>,
text: Option<String>,
},
CustomText {
text: String,
font: BookFont,
color: u32,
},
}Expand description
A single page variant inside a book entry.
The wire format (mod ↔ runtime JSON boundary, produced by
BookPage::to_json) is internally tagged with snake_case names —
{"type": "spotlight", "item": "yog:ruby", ...} — like Patchouli’s
per-page “type” field. The serde attributes below keep Deserialize
in exact agreement with to_json.
Variants§
Text
Plain formatted text, optionally with a section title (for non-first pages).
Spotlight
Display an item outlined (tooltip on hover).
Fields
Crafting
Crafting recipe display (autorenders 3×3 grid).
Smelting
Smelting recipe display.
Image
Image overlay page.
Entity
Entity display page (renders a living entity in a box).
Relations
Link to another entry (like Patchouli’s relations).
Empty
Empty separator.
Pattern
Custom pattern page for Hexcasting-style mods (like hexcasting:pattern).
Svg
SVG image page — rasterized at render time via resvg.
CustomText
Text rendered with a custom TTF/OTF font.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for BookPage
impl<'de> Deserialize<'de> for BookPage
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<BookPage, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<BookPage, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for BookPage
impl Serialize for BookPage
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for BookPage
impl RefUnwindSafe for BookPage
impl Send for BookPage
impl Sync for BookPage
impl Unpin for BookPage
impl UnsafeUnpin for BookPage
impl UnwindSafe for BookPage
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.