stratus/eth/primitives/
timestamp_filter.rs1use serde::Deserialize;
2use serde::Serialize;
3
4use crate::eth::primitives::UnixTime;
5#[derive(Debug, Clone, Copy, Serialize, Deserialize, Eq, PartialEq, Default, strum::Display, Hash)]
6#[cfg_attr(test, derive(fake::Dummy))]
7#[serde(rename_all = "camelCase")]
8pub enum BlockTimestampSeekMode {
9 #[default]
10 ExactOrPrevious,
11 ExactOrNext,
12}
13
14#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize, Hash)]
15#[cfg_attr(test, derive(fake::Dummy))]
16pub struct BlockTimestampFilter {
17 pub timestamp: UnixTime,
18 #[serde(default)]
19 pub mode: BlockTimestampSeekMode,
20}
21
22impl From<BlockTimestampSeekMode> for rocksdb::Direction {
23 fn from(value: BlockTimestampSeekMode) -> Self {
24 match value {
25 BlockTimestampSeekMode::ExactOrNext => rocksdb::Direction::Forward,
26 BlockTimestampSeekMode::ExactOrPrevious => rocksdb::Direction::Reverse,
27 }
28 }
29}