pub struct MemorySlot { /* private fields */ }Expand description
A SessionSlot in memory (tests, examples, a single-process tool).
Its Debug shows only the account id and whether a session and a cart
are kept.
Implementations§
Source§impl MemorySlot
impl MemorySlot
Sourcepub fn new(id: impl Into<String>, session: Option<Value>) -> Self
pub fn new(id: impl Into<String>, session: Option<Value>) -> Self
A slot for account id holding session.
Examples found in repository?
examples/fake_order.rs (line 15)
13async fn main() -> GrabResult<()> {
14 let backend = Fake::default();
15 let slot = Arc::new(MemorySlot::new("acct-1", Some(Fake::session("Sample"))));
16 let client = backend.client(slot);
17
18 let found = client.search("ramen", 5).await?;
19 println!("{}\n", text::merchants(&found));
20
21 let menu = client.menu("fake-ramen").await?;
22 println!("{}\n", text::menu(&menu, None));
23
24 let cart = client
25 .cart(&CartOp::Add {
26 merchant_id: menu.merchant.id.clone(),
27 item_id: menu.items[0].id.clone(),
28 quantity: 2,
29 note: Some("less salt".into()),
30 })
31 .await?;
32 println!("{}\n", text::cart(&cart));
33
34 let quote = client.quote().await?;
35 println!("{}\n", text::quote("e));
36
37 // Only once the person agreed to this quote id; never retried.
38 let placed = client.place_order("e.quote_id).await?;
39 println!("placed {}\n", placed.order_id);
40 println!("{}", text::tracked(&client.track(None).await?));
41 Ok(())
42}Trait Implementations§
Source§impl Debug for MemorySlot
impl Debug for MemorySlot
Source§impl Default for MemorySlot
impl Default for MemorySlot
Source§impl SessionSlot for MemorySlot
impl SessionSlot for MemorySlot
Source§fn load<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = GrabResult<Option<Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn load<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = GrabResult<Option<Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The session (none: not connected).
Source§fn save<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 Value,
) -> Pin<Box<dyn Future<Output = GrabResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn save<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 Value,
) -> Pin<Box<dyn Future<Output = GrabResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Keep the session (a refresh renewed it).
Auto Trait Implementations§
impl !Freeze for MemorySlot
impl Forget for MemorySlot
impl RefUnwindSafe for MemorySlot
impl Send for MemorySlot
impl Sync for MemorySlot
impl Unpin for MemorySlot
impl UnsafeUnpin for MemorySlot
impl UnwindSafe for MemorySlot
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