dogdata-sqlx 0.0.4

SQLx instrumentation for tracing to Datadog APM via OpenTelemetry
Documentation
pub(crate) mod sqlx_otel_span_macro;

pub mod execute;
pub mod query_builder;

#[macro_export]
macro_rules! instrumented_query {
    ($sql:expr $(, $arg:expr)* $(,)?) => {{
        $crate::query_builder::InstrumentedQueryBuilder {
            query: ::sqlx::query!($sql $(, $arg)*),
            sql: $sql,
        }
    }};
}

#[macro_export]
macro_rules! instrumented_query_as {
    ($out_ty:ty, $sql:expr $(, $arg:expr)* $(,)?) => {{
        $crate::query_builder::InstrumentedQueryBuilder {
            query: ::sqlx::query_as!($out_ty, $sql $(, $arg)*),
            sql: $sql,
        }
    }};
}

#[macro_export]
macro_rules! instrumented_query_scalar {
    ($sql:expr $(, $arg:expr)* $(,)?) => {{
        $crate::query_builder::InstrumentedQueryBuilder {
            query: ::sqlx::query_scalar!($sql $(, $arg)*),
            sql: $sql,
        }
    }};
}

#[macro_export]
macro_rules! instrumented_query_file {
    ($path:literal $(, $arg:expr)* $(,)?) => {{
        $crate::InstrumentedQueryBuilder {
            query: ::sqlx::query_file!($path $(, $arg)*),
            sql: include_str!($path),
        }
    }};
}

#[macro_export]
macro_rules! instrumented_query_file_as {
    ($out_ty:ty, $path:literal $(, $arg:expr)* $(,)?) => {{
        $crate::query_builder::InstrumentedQueryBuilder {
            query: ::sqlx::query_file_as!($out_ty, $path $(, $arg)*),
            sql: include_str!($path),
        }
    }};
}

#[macro_export]
macro_rules! instrumented_query_file_scalar {
    ($path:literal $(, $arg:expr)* $(,)?) => {{
        $crate::query_builder::InstrumentedQueryBuilder {
            query: ::sqlx::query_file_scalar!($path $(, $arg)*),
            sql: include_str!($path),
        }
    }};
}