tokio_memcache/protocol/
extras.rs1#![allow(dead_code)]
2
3use std::io;
4
5use byteorder::{NetworkEndian, WriteBytesExt};
6
7use super::{Extras, IntoValue};
8
9#[derive(Default)]
11pub struct GetExtras {
12 pub flags: u32,
13}
14
15impl IntoValue for GetExtras {
16 fn write<T: io::Write>(&self, buf: &mut T) -> io::Result<()> {
17 buf.write_u32::<NetworkEndian>(self.flags)
18 }
19}
20impl Extras for GetExtras {}
21
22pub type GetQExtras = GetExtras;
23pub type GetKExtras = GetExtras;
24pub type GetKQExtras = GetExtras;
25
26#[derive(Default)]
28pub struct SetExtras {
29 pub flags: u32,
30 pub expiration: u32,
31}
32
33impl IntoValue for SetExtras {
34 fn write<T: io::Write>(&self, buf: &mut T) -> io::Result<()> {
35 buf.write_u32::<NetworkEndian>(self.flags)?;
36 buf.write_u32::<NetworkEndian>(self.expiration)
37 }
38}
39impl Extras for SetExtras {}
40
41pub type AddExtras = SetExtras;
42pub type ReplaceExtras = SetExtras;
43
44#[derive(Default)]
46pub struct IncrExtras {
47 pub amount: u64,
48 pub initial: u64,
49 pub expiration: u32,
50}
51
52impl IntoValue for IncrExtras {
53 fn write<T: io::Write>(&self, buf: &mut T) -> io::Result<()> {
54 buf.write_u64::<NetworkEndian>(self.amount)?;
55 buf.write_u64::<NetworkEndian>(self.initial)?;
56 buf.write_u32::<NetworkEndian>(self.expiration)
57 }
58}
59impl Extras for IncrExtras {}
60
61pub type DecrExtras = IncrExtras;