view src/options.rs @ 21:be776a25b5e4

Rebase checksum verification on (internal) leveldb work
author Lewin Bormann <lbo@spheniscida.de>
date Sat, 24 Dec 2016 14:51:24 +0000
parents e169ac78539d
children 04468480cdcf
line wrap: on
line source

use std::default::Default;

#[derive(Clone, Copy, PartialEq, Debug)]
pub enum CompressionType {
    CompressionNone = 0,
    CompressionSnappy = 1,
}

pub fn int_to_compressiontype(i: u32) -> Option<CompressionType> {
    match i {
        0 => Some(CompressionType::CompressionNone),
        1 => Some(CompressionType::CompressionSnappy),
        _ => None
    }
}

/// [not all member types implemented yet]
///
#[derive(Clone, Copy)]
pub struct BuildOptions {
    pub block_size: usize,
    pub block_restart_interval: usize,
    // Note: Compression is not implemented.
    pub compression_type: CompressionType,
}

impl Default for BuildOptions {
    fn default() -> BuildOptions {
        BuildOptions {
            block_size: 4 * (1 << 10),
            block_restart_interval: 16,
            compression_type: CompressionType::CompressionNone,
        }
    }
}

#[derive(Clone, Copy)]
pub struct ReadOptions {
    pub skip_bad_blocks: bool,
}

impl Default for ReadOptions {
    fn default() -> ReadOptions {
        ReadOptions { skip_bad_blocks: true }
    }
}