pub mod server {
use crate::{Menu, Order, Server, Table};
pub fn take_order(table: &mut Table, server: Server, menu: Menu) -> Order {
table.is_occuped = true;
Order {
table,
server,
menu,
}
}
}
#[derive(Debug)]
pub enum Menu {
Salad,
Chicken,
Soup,
}
#[derive(Debug)]
pub struct Order<'a> {
pub menu: Menu,
pub table: &'a mut Table,
pub server: Server,
}
impl Order<'_> {
pub fn remember_order(&self) {
println!("{:#?}", self)
}
}
#[derive(Debug)]
pub struct Table {
pub num: i16,
is_occuped: bool,
}
impl Table {
pub fn take_seat(num: i16) -> Table {
Table {
num,
is_occuped: false,
}
}
pub fn is_seat_occuped(&self) -> bool {
self.is_occuped
}
}
#[derive(Debug)]
pub struct Server {
pub username: String,
pub email: String,
pub age: i32,
}