Skip to main content

Scene

Struct Scene 

Source
pub struct Scene {
    pub schema: &'static str,
    pub width: f64,
    pub height: f64,
    pub commands: Vec<SceneCommand>,
    pub trim: Option<Rect>,
}
Expand description

A fully resolved, backend-neutral display list.

The schema field is always "zenith-scene-v1" and is declared first so that it serializes as the first key in the JSON output, satisfying the normative requirement from the format spec.

Fields§

§schema: &'static str

Always "zenith-scene-v1". Declared first so it appears first in JSON.

§width: f64

Page / canvas width in pixels.

§height: f64

Page / canvas height in pixels.

§commands: Vec<SceneCommand>

Ordered display list. Paint order: index 0 is painted first (bottom).

§trim: Option<Rect>

Print trim box in scene (top-left origin, y-down) pixel coordinates.

Some only when the page declared a positive bleed margin: then width/height are the full media box (including bleed) and trim is the inner page rectangle [b, b, page_w, page_h]. None when there is no bleed (trim == media box). Skipped in JSON when absent so existing non-bleed scenes serialize byte-identically.

Implementations§

Source§

impl Scene

Source

pub fn new(width: f64, height: f64) -> Self

Construct an empty scene for the given page dimensions.

schema is always set to "zenith-scene-v1".

Source

pub fn to_json(&self) -> Result<String, Error>

Serialize this scene to a pretty-printed JSON string.

Uses serde_json::to_string_pretty which produces deterministic output because Scene and its fields use only Vec (ordered) and struct (stable field order in Rust + serde), never HashMap.

§Errors

Returns an error only if serialization fails, which cannot happen for the types used in Scene (all fields are plain numerics, strings, and u8s). The Result is kept for API robustness.

Trait Implementations§

Source§

impl Clone for Scene

Source§

fn clone(&self) -> Scene

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 Scene

Source§

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

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

impl PartialEq for Scene

Source§

fn eq(&self, other: &Scene) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Scene

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Scene

Auto Trait Implementations§

§

impl Freeze for Scene

§

impl RefUnwindSafe for Scene

§

impl Send for Scene

§

impl Sync for Scene

§

impl Unpin for Scene

§

impl UnsafeUnpin for Scene

§

impl UnwindSafe for Scene

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<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> 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> 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.