postgres_querybuilder/
bucket.rs

1use postgres_types::ToSql;
2
3type BucketValue = dyn ToSql + Sync;
4
5pub struct Bucket {
6  content: Vec<Box<BucketValue>>,
7}
8
9impl Bucket {
10  pub fn new() -> Bucket {
11    Bucket { content: vec![] }
12  }
13
14  pub fn get_refs(self) -> Vec<&'static BucketValue> {
15    let mut args: Vec<&BucketValue> = vec![];
16    for item in self.content {
17      args.push(Box::leak(item));
18    }
19    args
20  }
21
22  pub fn push<T: 'static + ToSql + Sync + Clone>(&mut self, value: T) -> usize {
23    self.content.push(Box::new(value));
24    self.content.len()
25  }
26
27  pub fn len(&self) -> usize {
28    self.content.len()
29  }
30}