pub struct Run {
pub content: RunContent,
pub char_shape_id: CharShapeIndex,
}Expand description
A run: a segment of content with a single character shape reference.
Runs are the leaf nodes of the document tree. A paragraph contains
one or more runs. Adjacent runs with the same char_shape_id could
theoretically be merged, but Core preserves the original structure.
§Examples
use hwpforge_core::run::Run;
use hwpforge_foundation::CharShapeIndex;
let run = Run::text("paragraph text", CharShapeIndex::new(0));
assert!(run.content.is_text());Fields§
§content: RunContentThe content of this run.
char_shape_id: CharShapeIndexIndex into the character shape collection (Blueprint resolves this).
Implementations§
Source§impl Run
impl Run
Sourcepub fn text(s: impl Into<String>, char_shape_id: CharShapeIndex) -> Self
pub fn text(s: impl Into<String>, char_shape_id: CharShapeIndex) -> Self
Creates a text run.
This is the most common constructor. Most runs in a typical document are text.
§Examples
use hwpforge_core::run::Run;
use hwpforge_foundation::CharShapeIndex;
let run = Run::text("Hello", CharShapeIndex::new(0));
assert_eq!(run.content.as_text(), Some("Hello"));Sourcepub fn table(table: Table, char_shape_id: CharShapeIndex) -> Self
pub fn table(table: Table, char_shape_id: CharShapeIndex) -> Self
Creates a table run. The table is automatically boxed.
§Examples
use hwpforge_core::run::Run;
use hwpforge_core::table::Table;
use hwpforge_foundation::CharShapeIndex;
let table = Table::new(vec![]);
let run = Run::table(table, CharShapeIndex::new(0));
assert!(run.content.is_table());Sourcepub fn image(image: Image, char_shape_id: CharShapeIndex) -> Self
pub fn image(image: Image, char_shape_id: CharShapeIndex) -> Self
Creates an image run.
§Examples
use hwpforge_core::run::Run;
use hwpforge_core::image::{Image, ImageFormat};
use hwpforge_foundation::{HwpUnit, CharShapeIndex};
let img = Image::new("test.png", HwpUnit::ZERO, HwpUnit::ZERO, ImageFormat::Png);
let run = Run::image(img, CharShapeIndex::new(0));
assert!(run.content.is_image());Sourcepub fn control(control: Control, char_shape_id: CharShapeIndex) -> Self
pub fn control(control: Control, char_shape_id: CharShapeIndex) -> Self
Creates a control run. The control is automatically boxed.
§Examples
use hwpforge_core::run::Run;
use hwpforge_core::control::Control;
use hwpforge_foundation::CharShapeIndex;
let link = Control::Hyperlink {
text: "Click".to_string(),
url: "https://example.com".to_string(),
};
let run = Run::control(link, CharShapeIndex::new(0));
assert!(run.content.is_control());Trait Implementations§
Source§impl<'de> Deserialize<'de> for Run
impl<'de> Deserialize<'de> for Run
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl JsonSchema for Run
impl JsonSchema for Run
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreimpl StructuralPartialEq for Run
Auto Trait Implementations§
impl Freeze for Run
impl RefUnwindSafe for Run
impl Send for Run
impl Sync for Run
impl Unpin for Run
impl UnwindSafe for Run
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
Mutably borrows from an owned value. Read more