Product

Struct Product 

Source
pub struct Product<'a> {
    pub name: &'a str,
    pub price: Money,
    pub tax: Tax,
}
Expand description

Describes one particular product. Amount is handled by BillItem

You can write your own product, just implement BillProduct

Fieldsยง

ยงname: &'a strยงprice: Moneyยงtax: Tax

Implementationsยง

Sourceยง

impl<'a> Product<'a>

Source

pub fn new(name: &'a str, price: Money, tax: f64) -> Self

Instantiates a new Product.

Examples found in repository?
examples/catalogue.rs (line 38)
37fn main() {
38    let coffee = Product::new("Coffee", c(250), 0.19);
39    let tee = Product::new("Tea", c(175), 0.19);
40    let water = Product::new("Water", c(61), 0.19);
41    let applejuice = Product::new("AppleJuice", c(164), 0.19);
42    let orangejuice = Product::new("OrangeJuice", c(186), 0.19);
43    let bagel = Product::new("Bagel", c(219), 0.19);
44    let sandwich = Product::new("Sandwich", c(340), 0.19);
45    let pie = Product::new("pie", c(94), 0.19);
46    let soup = Product::new("Soup", c(310), 0.19);
47    let service = Product::new("Service", c(800), 0.00);
48
49    let mut offer = Bill::new();
50    offer.add_item(8., water);
51    offer.add_item(4., applejuice);
52    offer.add_item(4., orangejuice);
53    offer.add_item(40., sandwich);
54    offer.add_item(2., service);
55
56    let mut invoice = Bill::new();
57    invoice.add_item(2., water);
58    invoice.add_item(0., applejuice);
59    invoice.add_item(2., orangejuice);
60    invoice.add_item(50., sandwich);
61    invoice.add_item(2.5, service);
62
63    let mut invoice2 = Bill::new();
64    invoice2.add_item(99.0, Product::new("Red Ballons", c(99), 0.19));
65
66    #[cfg(not(feature = "serialization"))]
67    {
68        print("offer", &offer);
69        print("invoice", &invoice);
70        print("invoice2", &invoice2);
71    }
72    #[cfg(feature = "serialization")]
73    {
74        println!("{}", serde_json::to_string_pretty(&offer).unwrap());
75        println!("{}", serde_json::to_string_pretty(&invoice).unwrap());
76        println!("{}", serde_json::to_string_pretty(&invoice2).unwrap());
77    }
78}

Trait Implementationsยง

Sourceยง

impl BillProduct for Product<'_>

Sourceยง

fn price(&self) -> Money

Price in Money
Sourceยง

fn name(&self) -> String

A name is a term used for identification.
Sourceยง

fn tax(&self) -> Tax

Sourceยง

impl<'a> Clone for Product<'a>

Sourceยง

fn clone(&self) -> Product<'a>

Returns a duplicate of the value. Read more
1.0.0 ยท Sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Sourceยง

impl<'a> Debug for Product<'a>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Sourceยง

impl<'a> Copy for Product<'a>

Auto Trait Implementationsยง

ยง

impl<'a> Freeze for Product<'a>

ยง

impl<'a> RefUnwindSafe for Product<'a>

ยง

impl<'a> Send for Product<'a>

ยง

impl<'a> Sync for Product<'a>

ยง

impl<'a> Unpin for Product<'a>

ยง

impl<'a> UnwindSafe for Product<'a>

Blanket Implementationsยง

Sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

Sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

Sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

Sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Sourceยง

impl<T> CloneToUninit for T
where T: Clone,

Sourceยง

unsafe fn clone_to_uninit(&self, dest: *mut u8)

๐Ÿ”ฌThis is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Sourceยง

impl<T> From<T> for T

Sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

Sourceยง

impl<T, U> Into<U> for T
where U: From<T>,

Sourceยง

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Sourceยง

impl<T> ToOwned for T
where T: Clone,

Sourceยง

type Owned = T

The resulting type after obtaining ownership.
Sourceยง

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Sourceยง

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Sourceยง

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Sourceยง

type Error = Infallible

The type returned in the event of a conversion error.
Sourceยง

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Sourceยง

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Sourceยง

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Sourceยง

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.