#![deny(missing_docs)]
#![warn(clippy::all)]
#![warn(clippy::pedantic)]
#![allow(clippy::module_name_repetitions)]
#![allow(clippy::missing_errors_doc)]
#![allow(clippy::missing_panics_doc)]
#![allow(clippy::cast_possible_truncation)]
#![allow(clippy::cast_sign_loss)]
pub mod attention;
pub mod decoder;
pub mod error;
pub mod fabric;
pub mod filters;
pub mod mincut;
pub mod syndrome;
pub mod tile;
pub mod types;
pub mod adaptive;
pub mod metrics;
pub mod parallel;
pub mod stim;
pub mod schema;
pub mod traits;
pub use error::{Result, RuQuError};
pub use filters::{
EdgeId as FilterEdgeId, EvidenceAccumulator, EvidenceFilter, EvidenceResult, FilterConfig,
FilterPipeline, FilterResults, RegionMask, ShiftFilter, ShiftResult, StructuralFilter,
StructuralResult, SystemState, Verdict,
};
pub use syndrome::{
BufferStatistics, DetectorBitmap, SyndromeBuffer, SyndromeDelta, SyndromeRound,
};
pub use tile::{
GateDecision, GateThresholds, LocalCutState, PatchGraph, PermitToken, ReceiptLog,
TileReport, TileZero, WorkerTile,
};
pub use types::{
ActionId, CycleId, RoundId, SequenceId, TileId as DomainTileId,
RegionMask as DomainRegionMask, GateDecision as DomainGateDecision,
};
pub use fabric::{
CoherenceGate, DecisionStats, FabricBuilder, FabricConfig, FabricState,
FilterSummary, PatchMap, QuantumFabric, TileAssignment, WitnessReceipt,
linear_patch_map, surface_code, surface_code_d7,
};
pub use mincut::{DynamicMinCutEngine, MinCutResult};
pub use decoder::{Correction, DecoderConfig, MWPMDecoder, StreamingDecoder};
pub use attention::{AttentionConfig, AttentionStats, CoherenceAttention, GatePacketBridge};
pub use adaptive::{
AdaptiveStats, AdaptiveThresholds, DriftConfig, DriftDetector, DriftDirection, DriftProfile,
LearningConfig,
};
pub use metrics::{Counter, Gauge, Histogram, MetricsCollector, MetricsConfig, MetricsSnapshot};
pub use parallel::{ParallelConfig, ParallelFabric, ParallelStats, parallel_aggregate};
pub use stim::{ErrorPatternGenerator, StimSyndromeSource, SurfaceCodeConfig, SyndromeStats};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const NAME: &str = env!("CARGO_PKG_NAME");
pub const MAX_DETECTORS: usize = 1024;
pub const DEFAULT_BUFFER_CAPACITY: usize = 1024;
pub const TILE_COUNT: usize = 256;
pub const WORKER_TILE_COUNT: usize = 255;
pub const TILE_MEMORY_BUDGET: usize = 65536;
pub mod prelude {
pub use crate::error::{Result, RuQuError};
pub use crate::fabric::{
CoherenceGate, DecisionStats, FabricBuilder, FabricConfig, FabricState,
PatchMap, QuantumFabric, TileAssignment, WitnessReceipt,
linear_patch_map, surface_code, surface_code_d7,
};
pub use crate::filters::{
EvidenceAccumulator, EvidenceFilter, EvidenceResult, FilterConfig, FilterPipeline,
FilterResults, RegionMask, ShiftFilter, ShiftResult, StructuralFilter, StructuralResult,
SystemState, Verdict,
};
pub use crate::syndrome::{
BufferStatistics, DetectorBitmap, SyndromeBuffer, SyndromeDelta, SyndromeRound,
};
pub use crate::tile::{
GateDecision, GateThresholds, LocalCutState, PatchGraph, PermitToken, ReceiptLog,
TileReport, TileZero, WorkerTile,
};
pub use crate::types::{
ActionId, CycleId, RoundId, SequenceId,
GateDecision as DomainGateDecision, RegionMask as DomainRegionMask,
};
pub use crate::{
DEFAULT_BUFFER_CAPACITY, MAX_DETECTORS, TILE_COUNT, TILE_MEMORY_BUDGET, WORKER_TILE_COUNT,
};
pub use crate::adaptive::{
AdaptiveThresholds, AdaptiveStats, DriftConfig, DriftDetector, DriftProfile, LearningConfig,
};
pub use crate::metrics::{MetricsCollector, MetricsConfig, MetricsSnapshot};
pub use crate::parallel::{ParallelFabric, ParallelConfig, ParallelStats};
pub use crate::stim::{StimSyndromeSource, SurfaceCodeConfig, SyndromeStats};
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_version_constant() {
assert!(!VERSION.is_empty());
assert!(!NAME.is_empty());
assert_eq!(NAME, "ruqu");
}
#[test]
fn test_constants() {
assert_eq!(MAX_DETECTORS, 1024);
assert_eq!(DEFAULT_BUFFER_CAPACITY, 1024);
}
}