content: # Copyright (c) Microsoft Corporation.
  # Licensed under the MIT License.
  
  [package]
  name = "qdk_sim_rs"
  version = "0.0.1-alpha"
  authors = ["Microsoft"]
  edition = "2018"
  license = "MIT"
  description = "Rust-based simulators for use with the Quantum Development Kit."
  homepage = "https://github.com/microsoft/qsharp-runtime"
  repository = "https://github.com/microsoft/qsharp-runtime"
  readme = "README.md"
  
  # Verified with cargo-msrv.
  rust-version = "1.51.0"
  
  exclude = [
      # Exclude files specific to QDK build pipelines.
      "*.template", "*.csx", "*.ps1", "NuGet.Config", "drop", "Cargo.toml.orig",
      # Don't include cbindgen configs and outputs.
      "include", "cbindgen.toml",
      # Don't include Python sources or build artifacts.
      "*.egg-info", "qdk_sim_experimental", "setup.py", "*.whl", "pyproject.toml"
  ]
  
  # Enable LaTeX on docs.rs.
  # See https://stackoverflow.com/a/54573800/267841 and
  # https://github.com/rust-num/num/pull/226/files for why this works.
  [package.metadata.docs.rs]
  rustdoc-args = [ "--html-in-header", "docs-includes/header.html", "--html-after-content", "docs-includes/after.html" ]
  features = ["document-features"]
  
  [lib]
  crate-type = ["rlib", "staticlib", "cdylib"]
  name = "qdk_sim"
  path = "src/lib.rs"
  
  # Optional build-time features: we use this to create Python and WASM bindings.
  [features]
  default = []
  
  ## Enables experimental support for Padé approximants.
  ## Currently disabled by default, but may be enabled by default in future
  ## versions.
  pade = []
  
  # When Python bindings are enabled, we also need the pyo3 dependency.
  ## Enables Python bindings for this crate.
  python = ["pyo3", "numpy"]
  
  ## Ensures that the crate is compatible with usage from WebAssembly.
  wasm = ["web-sys"]
  
  ## When enabled, C API calls print trace information to stdout to help debug
  ## how the simulator is called from interop code.
  trace_c_api = []
  
  [dependencies]
  anyhow = "1.0.56"
  # We use built to expose compile-time metadata about how this crate
  # was built to C and Rust callers.
  built = "0.5.0"
  cauchy = "0.4.0"
  cfg-if = "1.0.0"
  derive_more = "0.99.10"
  # We use document-features to automatically generate feature documentation from
  # Cargo.toml, following the example at
  # https://docs.rs/document-features/latest/document_features#examples.
  document-features = { version = "0.2", optional = true }
  # See https://github.com/rust-random/rand/issues/990
  # and https://docs.rs/getrandom/0.1.15/getrandom/index.html#support-for-webassembly-and-asmjs
  # for why this is needed.
  # NB: We depend on 0.1.15, since that's what gets brought in transitively
  #    by rand and rand_core.
  getrandom = { version = "0.1.15", features = ["wasm-bindgen"] }
  itertools = "0.9.0"
  lazy_static = "1.4.0"
  miette = "4.3.0"
  ndarray = { version = "0.15.2", features = ["serde"] }
  num-complex = { version = "0.4", features = ["serde"] }
  num-traits = "0.2"
  num_enum = "0.5.1"
  numpy = { version = "0.13.1", optional = true }
  once_cell = "1.10.0"
  # We only need PyO3 when generating Python bindings. 
  pyo3 = { version = "0.13.2", features = ["extension-module"], optional = true }
  rand = { version = "0.7.3", features = ["alloc"] }
  serde = { version = "1.0", features = ["derive"] }
  serde_json = "1.0"
  thiserror = "=1.0.30"
  
  # We only need web-sys when compiling with the wasm feature.
  web-sys = { version = "0.3.4", features = ['console'], optional = true }
  
  [build-dependencies]
  built = "0.5.0"
  
  
  [dev-dependencies]
  approx = { version = "0.5.1", features = ["num-complex"] }
  assert-json-diff = "2.0.1"
  backtrace = "=0.3.65"
  # criterion = { version = "0.3", features = ['html_reports', 'csv_output'] }
  ndarray = { version = "0.15.4", features = ["approx"] }
  
  # [[bench]]
  # harness = false
  # name = "c_api_benchmark"
  
  # [[bench]]
  # harness = false
  # name = "microbenchmark"
  