pub struct Image {
pub path: String,
pub width: HwpUnit,
pub height: HwpUnit,
pub format: ImageFormat,
pub caption: Option<Caption>,
}Expand description
An image reference within the document.
Contains the path to the image resource (relative to the document package root), its display dimensions, and format hint.
§No Binary Data
Core deliberately holds no image bytes. The Smithy crate resolves
path into actual binary data during encode/decode.
§Examples
use hwpforge_core::image::{Image, ImageFormat};
use hwpforge_foundation::HwpUnit;
let img = Image::new(
"BinData/logo.jpeg",
HwpUnit::from_mm(80.0).unwrap(),
HwpUnit::from_mm(40.0).unwrap(),
ImageFormat::Jpeg,
);
assert_eq!(img.format, ImageFormat::Jpeg);Fields§
§path: StringRelative path within the document package (e.g. "BinData/image1.png").
width: HwpUnitDisplay width.
height: HwpUnitDisplay height.
format: ImageFormatImage format hint.
caption: Option<Caption>Optional image caption.
Implementations§
Source§impl Image
impl Image
Sourcepub fn new(
path: impl Into<String>,
width: HwpUnit,
height: HwpUnit,
format: ImageFormat,
) -> Self
pub fn new( path: impl Into<String>, width: HwpUnit, height: HwpUnit, format: ImageFormat, ) -> Self
Creates a new image reference.
§Examples
use hwpforge_core::image::{Image, ImageFormat};
use hwpforge_foundation::HwpUnit;
let img = Image::new(
"images/photo.png",
HwpUnit::from_mm(100.0).unwrap(),
HwpUnit::from_mm(75.0).unwrap(),
ImageFormat::Png,
);
assert_eq!(img.path, "images/photo.png");Sourcepub fn from_path(
path: impl Into<String>,
width: HwpUnit,
height: HwpUnit,
) -> Self
pub fn from_path( path: impl Into<String>, width: HwpUnit, height: HwpUnit, ) -> Self
Creates an image reference by inferring the format from the file extension.
The extension is case-insensitive. Unrecognized extensions produce
ImageFormat::Unknown containing the lowercase extension string.
§Examples
use hwpforge_core::image::{Image, ImageFormat};
use hwpforge_foundation::HwpUnit;
let w = HwpUnit::from_mm(100.0).unwrap();
let h = HwpUnit::from_mm(75.0).unwrap();
let img = Image::from_path("photos/hero.png", w, h);
assert_eq!(img.format, ImageFormat::Png);
let img_jpg = Image::from_path("scan.JPG", w, h);
assert_eq!(img_jpg.format, ImageFormat::Jpeg);
let img_unknown = Image::from_path("diagram.svg", w, h);
assert_eq!(img_unknown.format, ImageFormat::Unknown("svg".to_string()));Trait Implementations§
Source§impl<'de> Deserialize<'de> for Image
impl<'de> Deserialize<'de> for Image
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 Image
impl JsonSchema for Image
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 Image
Auto Trait Implementations§
impl Freeze for Image
impl RefUnwindSafe for Image
impl Send for Image
impl Sync for Image
impl Unpin for Image
impl UnwindSafe for Image
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