deq-runtime 0.5.2-rc1

deq: Real-time Quantum Error Correction Decoding System
// This file is @generated by prost-build.
/// One sampled shot from a simulator.
///
///
/// Carries only the flat physical-measurement record. Callers that want
/// per-gadget chunks can slice `outcomes` themselves using the
/// per-gadget measurement counts from the JIT library — the
/// : class:`deq.runtime.Sampler` wrapper exposes a `split_outcomes`
///   helper and a `partition` property for that.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ShotSample {
    #[prost(message, optional, tag = "1")]
    pub outcomes: ::core::option::Option<super::util::BitVector>,
    /// Optional per-measurement loss flags, one bit per measurement in
    /// `outcomes`.  A set bit means the corresponding qubit was lost
    /// during that measurement, so the bit in `outcomes` is a randomized
    /// substitute filled in by the simulator and should be treated as
    /// unreliable.  Absent (or zero-length) when the sampler cannot
    /// distinguish loss from a regular outcome — which is the case for
    /// every Stim-native sampler today; only loss-aware samplers such as
    /// `--simulator python` driving `qdk.stim` populate this field.
    /// Mirrors the `loss_mask` field on :message:`deq.coordinator.Outcomes`.
    #[prost(message, optional, tag = "2")]
    pub loss_mask: ::core::option::Option<super::util::BitVector>,
}
/// Per-shot decoding results collected from one simulation run.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SimulatorTrace {
    #[prost(message, repeated, tag = "1")]
    pub shots: ::prost::alloc::vec::Vec<SimulatorShot>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SimulatorShot {
    #[prost(uint64, tag = "1")]
    pub shot: u64,
    /// Aggregate readouts and summed statistics. Absent only when decoding failed.
    #[prost(message, optional, tag = "2")]
    pub decode_result: ::core::option::Option<super::coordinator::Readouts>,
    /// Evaluated only for shots with a decode_result.
    #[prost(bool, tag = "3")]
    pub logical_error: bool,
    /// Successful gadget replies in program order, including zero-readout gadgets.
    /// Postprocessing chooses how to combine their statistics and select shots.
    #[prost(message, repeated, tag = "4")]
    pub gadget_readouts: ::prost::alloc::vec::Vec<super::coordinator::Readouts>,
}