cool_core/service/
mysql.rs1use super::base::{BaseService, SimpleService};
9use crate::error::CoolError;
10use sea_orm::{ConnectionTrait, DatabaseBackend, DatabaseConnection};
11use std::sync::Arc;
12
13pub struct MySqlService {
15 inner: SimpleService,
16}
17
18impl MySqlService {
19 pub fn new(db: Arc<DatabaseConnection>, table: impl Into<String>) -> Result<Self, CoolError> {
21 if db.get_database_backend() != DatabaseBackend::MySql {
22 return Err(CoolError::comm("当前连接不是 MySQL 后端"));
23 }
24 Ok(Self {
25 inner: SimpleService::new(db, table),
26 })
27 }
28}
29
30#[async_trait::async_trait]
31impl BaseService for MySqlService {
32 fn db(&self) -> &DatabaseConnection {
33 self.inner.db()
34 }
35
36 fn table_name(&self) -> &str {
37 self.inner.table_name()
38 }
39}