use std::marker::PhantomData;
use crate::types::item::{Order as OrderItem};
pub struct Owned;
#[derive(Clone)]
pub struct Unowned;
#[derive(Clone)]
pub struct Order<State = Unowned> {
pub(crate) object: OrderItem,
_state: PhantomData<State>,
}
impl<State> Order<State> {
pub fn get_type(&mut self) -> OrderItem {
self.object.clone()
}
}
impl Order<Unowned> {
pub(super) fn new(order: &OrderItem) -> Self {
Order {
object: order.clone(),
_state: PhantomData,
}
}
}
impl Order<Owned> {
pub(super) fn new_owned(order: &OrderItem) -> Self {
Order {
object: order.clone(),
_state: PhantomData,
}
}
}