nostralink 0.2.1

Linked data library for nostr
Documentation
//! API to retrieve SparQL queries from the built-in queries database

use crate::err::LDError;
use rust_embed::Embed;

#[derive(Embed)]
#[folder = "sparql/"]
struct QueryDb;

/// Returns a sparql query file's content from the sparql query db
pub fn nrq_get_orig(name: &str) -> Result<String, LDError> {
    match QueryDb::get(format!("{}.rq", name).as_str()) {
        Some(file) => {
            Ok(String::from_utf8_lossy(file.data.as_ref()).to_string())
        }
        None => Err(LDError::SparQLQueryNotFoundError),
    }
}

/// Returns a sparql query file's content from the sparql query db
pub fn nrq_get(name: &str) -> Result<String, LDError> {
    if let Some(file) = QueryDb::get(format!("{}.rq", name).as_str()) {
        return Ok(String::from_utf8_lossy(file.data.as_ref()).to_string());
    } else if let Some(file) = QueryDb::get(format!("{}.prq", name).as_str()) {
        return Ok(String::from_utf8_lossy(file.data.as_ref()).to_string());
    } else {
        return Err(LDError::SparQLQueryNotFoundError);
    }
}