Enums 如何有条件地检查枚举是一个变量还是另一个变量?

Enums 如何有条件地检查枚举是一个变量还是另一个变量?,enums,rust,conditional,Enums,Rust,Conditional,我有一个带有两个变体的枚举: enum DatabaseType { Memory, RocksDB, } 在检查参数是否为DatabaseType::Memory或DatabaseType::RocksDB的函数中创建条件if需要什么 fn initialize(datastore: DatabaseType) -> Result<V, E> { if /* Memory */ { //.......... } else if

我有一个带有两个变体的枚举:

enum DatabaseType {
    Memory,
    RocksDB,
}
在检查参数是否为
DatabaseType::Memory
DatabaseType::RocksDB
的函数中创建条件if需要什么

fn initialize(datastore: DatabaseType) -> Result<V, E> {
    if /* Memory */ {
        //..........
    } else if /* RocksDB */ {
        //..........
    }
}
fn初始化(数据存储:DatabaseType)->结果{
if/*内存*/{
//..........
}否则,如果/*RocksDB*/{
//..........
}
}

首先,返回并重新阅读免费的官方铁锈书


匹配
if let
==
另见:

fn initialize(datastore: DatabaseType) {
    match datastore {
        DatabaseType::Memory => {
            // ...
        }
        DatabaseType::RocksDB => {
            // ...
        }
    }
}
fn initialize(datastore: DatabaseType) {
    if let DatabaseType::Memory = datastore {
        // ...
    } else {
        // ...
    }
}
#[derive(PartialEq)]
enum DatabaseType {
    Memory,
    RocksDB,
}

fn initialize(datastore: DatabaseType) {
    if DatabaseType::Memory == datastore {
        // ...
    } else {
        // ...
    }
}