langdb_core 0.3.2

AI gateway Core for LangDB AI Gateway.
Documentation
use crate::database::DatabaseTransport;
use crate::telemetry::SpanWriterTransport;
use crate::GatewayError;
use crate::GatewayResult;
use serde_json::Value;

pub struct DatabaseSpanWritter {
    transport: Box<dyn DatabaseTransport + Send + Sync>,
}

impl DatabaseSpanWritter {
    pub fn new(transport: Box<dyn DatabaseTransport + Send + Sync>) -> Self {
        Self { transport }
    }
}

#[async_trait::async_trait]
impl SpanWriterTransport for DatabaseSpanWritter {
    async fn insert_values(
        &self,
        table_name: &str,
        columns: &[&str],
        body: Vec<Vec<Value>>,
    ) -> GatewayResult<String> {
        self.transport
            .insert_values(table_name, columns, body)
            .await
            .map_err(|e| GatewayError::CustomError(e.to_string()))
    }
}