pub struct Epub {
pub metadata: Metadata,
pub toc: Vec<TocEntry>,
pub pages: Vec<Page>,
pub images: Vec<Image>,
}Expand description
A parsed EPUB e-book representation.
This struct contains all the extracted data from an EPUB file including:
- Metadata (title, author, publisher, etc.)
- Table of contents (hierarchical navigation)
- Text content (pages in reading order)
- Images (including cover image)
§Example
use epub_parser::Epub;
use std::path::Path;
let epub = Epub::parse(Path::new("book.epub"))?;
// Access metadata
if let Some(title) = &epub.metadata.title {
println!("Title: {}", title);
}
// Access all pages
for page in &epub.pages {
println!("Page {}: {} chars", page.index, page.content.len());
}
// Access images
for image in &epub.images {
println!("Image: {} ({})", image.href, image.media_type);
}Fields§
§metadata: MetadataThe Dublin Core metadata extracted from the EPUB.
toc: Vec<TocEntry>The hierarchical table of contents from the NCX file.
pages: Vec<Page>The text content of each page in reading order.
images: Vec<Image>All images found in the EPUB (including cover).
Implementations§
Source§impl Epub
impl Epub
Sourcepub fn parse(path: &Path) -> Result<Self, Error>
pub fn parse(path: &Path) -> Result<Self, Error>
Parse an EPUB file from a file path.
§Arguments
path- The path to the EPUB file.
§Returns
Returns Ok(Epub) on success, or an Error if parsing fails.
§Errors
This function will return an error if:
- The file does not exist
- The file is not a valid ZIP archive
- The EPUB structure is invalid
§Example
use epub_parser::Epub;
use std::path::Path;
let epub = Epub::parse(Path::new("book.epub"))?;
println!("Parsed: {}", epub.metadata.title.unwrap_or_default());Sourcepub fn parse_from_buffer(buffer: &[u8]) -> Result<Self, Error>
pub fn parse_from_buffer(buffer: &[u8]) -> Result<Self, Error>
Parse an EPUB file from a byte buffer.
This is useful when you have the EPUB data in memory, for example when downloading from a network or reading from a database.
§Arguments
buffer- The raw bytes of the EPUB file.
§Returns
Returns Ok(Epub) on success, or an Error if parsing fails.
§Example
use epub_parser::Epub;
let bytes = std::fs::read("book.epub")?;
let epub = Epub::parse_from_buffer(&bytes)?;
println!("Parsed: {}", epub.metadata.title.unwrap_or_default());Trait Implementations§
Auto Trait Implementations§
impl Freeze for Epub
impl RefUnwindSafe for Epub
impl Send for Epub
impl Sync for Epub
impl Unpin for Epub
impl UnwindSafe for Epub
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