pub enum Isbn {
_10(Isbn10),
_13(Isbn13),
}Expand description
An International Standard Book Number, either ISBN10 or ISBN13.
§Examples
use isbn::{Isbn, Isbn10, Isbn13};
let isbn_10 = Isbn::_10(Isbn10::new([8, 9, 6, 6, 2, 6, 1, 2, 6, 4]).unwrap());
let isbn_13 = Isbn::_13(Isbn13::new([9, 7, 8, 1, 4, 9, 2, 0, 6, 7, 6, 6, 5]).unwrap());
assert_eq!("89-6626-126-4".parse(), Ok(isbn_10));
assert_eq!("978-1-4920-6766-5".parse(), Ok(isbn_13));Variants§
Implementations§
Source§impl Isbn
impl Isbn
Sourcepub fn hyphenate(&self) -> Result<ArrayString<17>, IsbnError>
pub fn hyphenate(&self) -> Result<ArrayString<17>, IsbnError>
Hyphenate an ISBN into its parts:
- GS1 Prefix (ISBN-13 only)
- Registration group
- Registrant
- Publication
- Check digit
use isbn::{Isbn, Isbn10, Isbn13};
let isbn_10 = Isbn::_10(Isbn10::new([8, 9, 6, 6, 2, 6, 1, 2, 6, 4]).unwrap());
let isbn_13 = Isbn::_13(Isbn13::new([9, 7, 8, 1, 4, 9, 2, 0, 6, 7, 6, 6, 5]).unwrap());
assert_eq!(isbn_10.hyphenate().unwrap().as_str(), "89-6626-126-4");
assert_eq!(isbn_13.hyphenate().unwrap().as_str(), "978-1-4920-6766-5");§Errors
If the ISBN is not valid, as determined by the current ISBN rules, an error will be returned.
Sourcepub fn registration_group(&self) -> Result<&str, IsbnError>
pub fn registration_group(&self) -> Result<&str, IsbnError>
Retrieve the name of the registration group.
use isbn::{Isbn, Isbn10, Isbn13};
let isbn_10 = Isbn::_10(Isbn10::new([8, 9, 6, 6, 2, 6, 1, 2, 6, 4]).unwrap());
let isbn_13 = Isbn::_13(Isbn13::new([9, 7, 8, 1, 4, 9, 2, 0, 6, 7, 6, 6, 5]).unwrap());
assert_eq!(isbn_10.registration_group(), Ok("Korea, Republic"));
assert_eq!(isbn_13.registration_group(), Ok("English language"));§Errors
If the ISBN is not valid, as determined by the current ISBN rules, an error will be returned.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Isbn
impl<'de> Deserialize<'de> for Isbn
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
impl Eq for Isbn
impl StructuralPartialEq for Isbn
Auto Trait Implementations§
impl Freeze for Isbn
impl RefUnwindSafe for Isbn
impl Send for Isbn
impl Sync for Isbn
impl Unpin for Isbn
impl UnwindSafe for Isbn
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.