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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
#[derive(PartialEq, Eq, Clone)] pub enum CommandType { Aggregate, BuildInfo, Count, CreateCollection, CreateIndexes, CreateUser, DeleteMany, DeleteOne, Distinct, DropAllUsers, DropCollection, DropDatabase, DropIndexes, DropUser, Find, FindOneAndDelete, FindOneAndReplace, FindOneAndUpdate, GetUser, GetUsers, InsertMany, InsertOne, IsMaster, ListCollections, ListDatabases, ListIndexes, Suppressed, UpdateMany, UpdateOne, } impl CommandType { pub fn to_str(&self) -> &str { match *self { CommandType::Aggregate => "aggregate", CommandType::BuildInfo => "buildinfo", CommandType::Count => "count", CommandType::CreateCollection => "create_collection", CommandType::CreateIndexes => "create_indexes", CommandType::CreateUser => "create_user", CommandType::DeleteMany => "delete_many", CommandType::DeleteOne => "delete_one", CommandType::Distinct => "distinct", CommandType::DropAllUsers => "drop_all_users", CommandType::DropCollection => "drop_collection", CommandType::DropDatabase => "drop_database", CommandType::DropIndexes => "drop_indexes", CommandType::DropUser => "drop_user", CommandType::Find => "find", CommandType::FindOneAndDelete => "find_one_and_delete", CommandType::FindOneAndReplace => "find_one_and_replace", CommandType::FindOneAndUpdate => "find_one_and_update", CommandType::GetUser => "get_user", CommandType::GetUsers => "get_users", CommandType::InsertMany => "insert_many", CommandType::InsertOne => "insert_one", CommandType::IsMaster => "is_master", CommandType::ListCollections => "list_collections", CommandType::ListDatabases => "list_databases", CommandType::ListIndexes => "list_indexes", CommandType::Suppressed => "suppressed", CommandType::UpdateMany => "update_many", CommandType::UpdateOne => "update_one", } } pub fn is_write_command(&self) -> bool { match *self { CommandType::CreateCollection | CommandType::CreateIndexes | CommandType::CreateUser | CommandType::DeleteMany | CommandType::DeleteOne | CommandType::DropAllUsers | CommandType::DropCollection | CommandType::DropDatabase | CommandType::DropIndexes | CommandType::DropUser | CommandType::FindOneAndDelete | CommandType::FindOneAndReplace | CommandType::FindOneAndUpdate | CommandType::InsertMany | CommandType::InsertOne | CommandType::UpdateMany | CommandType::UpdateOne => true, CommandType::Aggregate | CommandType::BuildInfo | CommandType::Count | CommandType::Distinct | CommandType::Find | CommandType::GetUser | CommandType::GetUsers | CommandType::IsMaster | CommandType::ListCollections | CommandType::ListDatabases | CommandType::ListIndexes | CommandType::Suppressed => false, } } }