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: TaxImplementationsยง
Sourceยงimpl<'a> Product<'a>
impl<'a> Product<'a>
Sourcepub fn new(name: &'a str, price: Money, tax: f64) -> Self
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<'_>
impl BillProduct for Product<'_>
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> 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