#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ShotSample {
#[prost(message, optional, tag = "1")]
pub outcomes: ::core::option::Option<super::util::BitVector>,
#[prost(message, optional, tag = "2")]
pub loss_mask: ::core::option::Option<super::util::BitVector>,
}
#[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,
#[prost(message, optional, tag = "2")]
pub decode_result: ::core::option::Option<super::coordinator::Readouts>,
#[prost(bool, tag = "3")]
pub logical_error: bool,
#[prost(message, repeated, tag = "4")]
pub gadget_readouts: ::prost::alloc::vec::Vec<super::coordinator::Readouts>,
}