claps 0.2.0

CLIs written in Rust
Documentation
use std::ffi::OsStr;

use anyhow::Result;

use crate::common::log::LogResult;
use crate::external::bitwarden::types::Folder;

fn get<I, S>(args: I) -> Result<String>
where
    I: IntoIterator<Item = S>,
    S: AsRef<OsStr>,
{
    crate::external::bitwarden::bw("get", args)
}

pub fn username(id: &str) -> Result<String> {
    get(["username", id])
}

pub fn password(id: &str) -> Result<String> {
    get(["password", id])
}

pub fn notes(id: &str) -> Result<String> {
    get(["notes", id])
}

pub fn folder(id: &str) -> Result<Folder> {
    serde_json::from_str(&get(["folder", id])?).log()
}