// Copyright 2026 TiKV Project Authors. Licensed under Apache-2.0.

use std::path::Path;

use encryption::DataKeyManager;
use file_system::File;
use legacy_sst::Reader;

use crate::Result;

pub(crate) fn open(path: &Path, key_manager: Option<&DataKeyManager>) -> Result<Reader> {
    let file = File::open(path)?;
    if let Some(key_manager) = key_manager {
        Ok(Reader::new(key_manager.open_file_with_reader(path, file)?)?)
    } else {
        Ok(Reader::new(file)?)
    }
}
