1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use serde::{Serialize, Deserialize};
use crate::database::sql::enums::sql_symbol::SqlSymbol;

#[allow(non_camel_case_types)]
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum JoinType {
    LEFT, INNER, LEFT_OUTER, RIGHT, RIGHT_OUTER, CROSS, STRAIGHT_JOIN
}

impl SqlSymbol for JoinType {
    fn symbol(self) -> &'static str {
        return match self {
            JoinType::LEFT => "INNER JOIN",
            JoinType::LEFT_OUTER => "INNER JOIN",
            JoinType::INNER => "INNER JOIN",
            JoinType::RIGHT => "INNER JOIN",
            JoinType::RIGHT_OUTER => "RIGHT OUTER JOIN",
            JoinType::CROSS => "CROSS JOIN",
            JoinType::STRAIGHT_JOIN => "STRAIGHT_JOIN"
        }
    }
}