Enum theory::MetadataEntry
source · #[non_exhaustive]
pub enum MetadataEntry {
Title(String),
Author(String),
Language(String),
Date(u64),
License(String),
Keyword(String),
User(String, String),
}
Expand description
Metadata associated to a book or a page.
Adding Metadata Entries
Entries can be added with the add_metadata
function of each type.
use theory::{Book, MetadataEntry::{Keyword, Title}};
let mut builder = Book::builder();
builder.add_metadata(Title("The Book".into()));
builder
.new_page("Introduction")
.add_metadata(Keyword("intro".into()));
Reading Metadata Entries
Both Book
and Page
provide a metadata
function to get all entries associated with the item.
For example, to get the title of a book:
use std::io::{Read, Seek};
use theory::{Book, MetadataEntry::Title, errors::MetadataError};
fn book_title<T>(book: &mut Book<T>) -> Result<Option<String>, MetadataError>
where
T: Read + Seek,
{
for entry in book.metadata()? {
if let Title(t) = entry? {
return Ok(Some(t));
}
}
Ok(None)
}
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Title(String)
Author(String)
Language(String)
Date(u64)
License(String)
Keyword(String)
User(String, String)
Trait Implementations§
source§impl Clone for MetadataEntry
impl Clone for MetadataEntry
source§fn clone(&self) -> MetadataEntry
fn clone(&self) -> MetadataEntry
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more