1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
use std::rc; use chrono; use serde_json; use super::expression; use super::sql; #[derive(Clone, Copy, Debug)] pub struct Placeholder { idx: u8 } impl Placeholder { pub fn new(idx: u8) -> Placeholder { Placeholder { idx: idx } } pub fn get_idx(&self) -> u8 { self.idx } } impl expression::UntypedExpression for Placeholder { fn expression_as_sql(&self) -> &sql::ToSql { self } fn upcast_expression(&self) -> expression::SharedExpression { rc::Rc::new(Box::new(self.clone()) as expression::BoxedExpression) } } impl expression::ToExpression<bool> for Placeholder {} impl expression::ToExpression<f64> for Placeholder {} impl expression::ToExpression<String> for Placeholder {} impl expression::ToExpression<Vec<u8>> for Placeholder {} impl expression::ToExpression<chrono::NaiveDateTime> for Placeholder {} impl expression::ToExpression<serde_json::Value> for Placeholder {} impl expression::ToExpression<expression::RawExpression> for Placeholder {}