use crate::expressions::Expression;
use crate::policy::BasePolicy;
use crate::ConsistencyLevel;
use super::{PolicyLike, Replica};
#[derive(Debug, Default, Clone)]
pub struct ReadPolicy {
pub base_policy: BasePolicy,
pub replica: Replica,
}
impl Default for BasePolicy {
fn default() -> BasePolicy {
BasePolicy {
socket_timeout: 30000,
total_timeout: 1000,
timeout_delay: 0,
max_retries: 2,
sleep_between_retries: 0,
consistency_level: ConsistencyLevel::ConsistencyOne,
read_touch_ttl: super::ReadTouchTTL::ServerDefault,
filter_expression: None,
}
}
}
impl BasePolicy {
pub const fn filter_expression(&self) -> &Option<Expression> {
&self.filter_expression
}
}
impl PolicyLike for ReadPolicy {
fn base(&self) -> &BasePolicy {
&self.base_policy
}
}