libdd-sampling 2.0.0

Core sampling logic for Datadog tracing
Documentation
// Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
// SPDX-License-Identifier: Apache-2.0

//! Core sampling logic for Datadog tracing
//!
//! This crate provides generic sampling infrastructure including:
//! - Trait abstractions for trace IDs, attributes, and span properties
//! - Rate-based sampling algorithms
//! - Rate limiting functionality
//! - Glob pattern matching for sampling rules
//! - Sampling-related constants
//! - Rule-based sampling with pattern matching
//! - Agent-provided sampling rates
//! - Complete Datadog sampler implementation

#![cfg_attr(
    not(test),
    deny(
        clippy::panic,
        clippy::unwrap_used,
        clippy::expect_used,
        clippy::todo,
        clippy::unimplemented,
    )
)]

pub(crate) mod agent_service_sampler;
pub(crate) mod bounded_byte_cache;
pub(crate) mod constants;
pub(crate) mod datadog_sampler;
pub mod dd_constants;
pub mod dd_sampling;
#[cfg(not(feature = "bench-internals"))]
pub(crate) mod glob_matcher;
#[cfg(feature = "bench-internals")]
#[doc(hidden)]
pub mod glob_matcher;
pub(crate) mod rate_limiter;
pub(crate) mod rate_sampler;
pub(crate) mod rules_sampler;
pub(crate) mod sampling_rule;
pub(crate) mod sampling_rule_config;
pub(crate) mod types;

#[cfg(feature = "v04_span")]
pub mod v04_span;

// Re-export key types for convenience
pub use agent_service_sampler::ServicesSampler;
pub use datadog_sampler::{DatadogSampler, SamplingRulesCallback};
pub use dd_sampling::{mechanism, priority, SamplingDecision, SamplingMechanism, SamplingPriority};
pub use sampling_rule::SamplingRule;
pub use sampling_rule_config::{ParsedSamplingRules, SamplingRuleConfig};
pub use types::{
    AttributeFactory, AttributeLike, SamplingData, SpanProperties, TraceIdLike, ValueLike,
};