//! The job service's engine: a program and what is asked of it, planned onto a //! method, run, and answered as JSON. The service, the command line and the //! desktop app plan and run a job the same way, so the same job gives the same //! result on each. //! //! - [`catalog`]: a job read and checked ([`catalog::Request`]), the methods //! and their limits, and [`catalog::plan`], which picks a method for a job //! and says why, with the memory and work it will take. //! - [`run`]: [`run::run`] carries a plan out and gives the result: counts, //! expectation values, amplitudes, the accuracy class and what the method //! did. //! - [`dynamic`]: programs that measure in the middle, reset or branch on a //! measured bit, run branch by branch. //! - [`receipt`] (with `quantum_receipt`): a result sealed with a key over //! the request and the result in their canonical JSON, and checked. The //! service seals with its key and the command line with the user's, in one //! form. //! - [`job`] (with `quantum_receipt`): a job end to end, planned, run and //! sealed, in the service's form; its check; and a program's lint. //! - [`draw`]: a program's circuit as text. //! //! Requests and results are the service's JSON (`/v1/openapi.json` there). //! Keys, metering a job's energy, queueing and limits per client stay with //! whatever hosts the engine. pub mod catalog; pub mod draw; pub mod dynamic; #[cfg(feature = "quantum_receipt")] pub mod job; #[cfg(feature = "quantum_receipt")] pub mod receipt; pub mod run;