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
use super::{
    shell::ShellConfig, with_migrations_vec::WithMigrationsVec, with_shell_config::WithShellConfig,
};
use crate::migration::Migration;

#[derive(Clone)]
pub struct WithConnection {
    pub db: mongodb::Database,
}

impl WithConnection {
    pub fn with_migrations_vec(self, migrations: Vec<Box<dyn Migration>>) -> WithMigrationsVec {
        WithMigrationsVec {
            migrations,
            with_connection: self,
            with_shell_config: None,
        }
    }

    pub fn with_shell_config(self, with_shell_config: ShellConfig) -> WithShellConfig {
        WithShellConfig {
            with_shell_config,
            with_connection: self,
        }
    }
}