diff options
Diffstat (limited to 'rust/scraper/src/database/mod.rs')
-rw-r--r-- | rust/scraper/src/database/mod.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/rust/scraper/src/database/mod.rs b/rust/scraper/src/database/mod.rs new file mode 100644 index 0000000..232f42f --- /dev/null +++ b/rust/scraper/src/database/mod.rs @@ -0,0 +1,20 @@ +pub mod postgres; +pub mod error; + +pub use error::DatabaseError; + +use proto::touchpad::common::v1; + +type Result<T> = std::result::Result<T, DatabaseError>; + +#[async_trait::async_trait] +pub trait DatabaseClient { + async fn get_swimmer(&self, id: u32) -> Result<v1::Swimmer>; + async fn add_swimmer(&self, swimmer: &v1::Swimmer) -> Result<()>; + + async fn get_team(&self, id: u32) -> Result<v1::Team>; + async fn add_team(&self, team: &v1::Team) -> Result<()>; + + async fn get_meet(&self, id: u32) -> Result<v1::SwimMeet>; + async fn add_meet(&self, meet: &v1::SwimMeet) -> Result<()>; +} |