mockforge_core/contract_drift/
mod.rs

1//! Pillars: [Contracts]
2//!
3//! Contract drift detection and budget management
4//!
5//! This module provides functionality for tracking contract drift, managing drift budgets,
6//! and detecting breaking changes according to configurable rules.
7
8pub mod breaking_change_detector;
9pub mod budget_engine;
10pub mod consumer_mapping;
11pub mod field_tracking;
12pub mod fitness;
13pub mod grpc_contract;
14pub mod mqtt_kafka_contracts;
15pub mod protocol_contracts;
16pub mod types;
17pub mod websocket_contract;
18
19pub use breaking_change_detector::BreakingChangeDetector;
20pub use budget_engine::DriftBudgetEngine;
21pub use consumer_mapping::{
22    AppType, ConsumerImpact, ConsumerImpactAnalyzer, ConsumerMapping, ConsumerMappingRegistry,
23    ConsumingApp, SDKMethod,
24};
25pub use field_tracking::{FieldCountRecord, FieldCountTracker};
26pub use fitness::{
27    FitnessEvaluator, FitnessFunction, FitnessFunctionRegistry, FitnessFunctionType, FitnessScope,
28    FitnessTestResult,
29};
30pub use grpc_contract::{diff_grpc_contracts, GrpcContract};
31pub use mqtt_kafka_contracts::{
32    diff_kafka_contracts, diff_mqtt_contracts, EvolutionRules, KafkaContract, KafkaTopicSchema,
33    MqttContract, MqttTopicSchema, SchemaFormat, TopicSchema,
34};
35pub use protocol_contracts::{
36    compare_contracts, extract_breaking_changes, ContractError, ContractMetadata,
37    ContractOperation, ContractRequest, OperationType, ProtocolContract, ProtocolContractRegistry,
38    ValidationError, ValidationResult,
39};
40pub use types::{
41    BreakingChangeRule, BreakingChangeRuleConfig, BreakingChangeRuleType, DriftBudget,
42    DriftBudgetConfig, DriftMetrics, DriftResult,
43};
44pub use websocket_contract::{
45    diff_websocket_contracts, MessageDirection, WebSocketContract, WebSocketMessageType,
46};