reasoninglayer 0.1.2

Rust client SDK for the Reasoning Layer API
Documentation
//! OSFQL DTOs.

use std::collections::BTreeMap;

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OsfqlRequest {
    pub query: String,
}

/// Bound value from OSFQL execution.
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", content = "value", rename_all = "snake_case")]
pub enum OsfqlValue {
    Integer(i64),
    Float(f64),
    String(String),
    Boolean(bool),
    TermRef(String),
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct OsfqlResponse {
    #[serde(default)]
    pub success: bool,
    #[serde(default)]
    pub bindings: Vec<BTreeMap<String, OsfqlValue>>,
    #[serde(default)]
    pub produced_term_ids: Vec<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub defined_sort_ids: Option<Vec<String>>,
    #[serde(default)]
    pub diagnostics: Vec<String>,
    #[serde(default)]
    pub statement_count: u64,
}