fcrypt 0.3.2

Cross-platform CLI for password-based file encryption and decryption
Documentation
use std::path::Path;

use crate::error::{AppError, Result};

pub fn resolve_overwrite<F>(output_path: &Path, force: bool, mut confirm: F) -> Result<bool>
where
    F: FnMut(&Path) -> Result<bool>,
{
    if !output_path.exists() {
        return Ok(false);
    }

    if force {
        return Ok(true);
    }

    if confirm(output_path)? {
        Ok(true)
    } else {
        Err(AppError::UserAborted)
    }
}