in src/codec/thrift_cache.rs [304:373]
fn remove(rng: &mut SmallRng, keyspace: &Keyspace, buf: &mut Session) {
let key = keyspace.generate_key(rng);
let mut fields = Vec::new();
for _ in 0..keyspace.batch_size() {
fields.push(
keyspace
.generate_inner_key(rng)
.unwrap_or_else(|| b"".to_vec()),
);
}
let timeout = None;
let timestamp = None;
let count = None;
let mut buffer = thrift::ThriftBuffer::new();
buffer.protocol_header();
buffer.method_name("remove");
buffer.sequence_id(0);
buffer.write_bytes(&[thrift::LIST]);
buffer.write_i16(1);
buffer.write_bytes(&[thrift::STRUCT]);
buffer.write_i32(1);
buffer.write_bytes(&[thrift::STRING]);
buffer.write_i16(1);
buffer.write_i32(1);
buffer.write_bytes(b"0");
buffer.write_bytes(&[thrift::STRING]);
buffer.write_i16(2);
buffer.write_i32(key.len() as i32);
buffer.write_bytes(&key);
buffer.write_bytes(&[thrift::LIST]);
buffer.write_i16(3);
buffer.write_bytes(&[thrift::STRING]);
buffer.write_i32(fields.len() as i32);
for field in fields {
buffer.write_i32(field.len() as i32);
buffer.write_bytes(&field);
}
if let Some(timestamp) = timestamp {
buffer.write_bytes(&[thrift::I64]);
buffer.write_i16(4);
buffer.write_i64(timestamp);
}
if let Some(count) = count {
buffer.write_bytes(&[thrift::I32]);
buffer.write_i16(5);
buffer.write_i32(count);
}
if let Some(timeout) = timeout {
buffer.write_bytes(&[thrift::I32]);
buffer.write_i16(11);
buffer.write_i32(timeout);
}
// stop request struct
buffer.stop();
buffer.stop();
buffer.frame();
let _ = buf.write(buffer.as_bytes());
}