content: [package]
  name = "rinex"
  version = "0.22.0"
  license = "MPL-2.0"
  authors = ["Guillaume W. Bres <guillaume.bressaix@gmail.com>"]
  description = "RINEX file parsing, analysis and production"
  homepage = "https://github.com/nav-solutions"
  repository = "https://github.com/nav-solutions/rinex"
  keywords = ["geo", "gnss", "gps", "galileo"]
  categories = ["science", "science::geo", "parsing"]
  edition = "2021"
  readme = "README.md"
  exclude = [
      "data/*",
  ]
  
  [package.metadata]
  msrv = "1.83"
  
  [package.metadata.docs.rs]
  all-features = true
  rustdoc-args = ["--cfg", "docrs", "--generate-link-to-definition"]
  
  #####################################################################
  # To understand the lib features, please read the following comments.
  # 
  # Other features that exist:
  # - log: unlocks debug traces
  # - serde: internal structures serdes
  #####################################################################
  
  ################################################################
  # Note for devs:
  #
  # [Dependencies] see if we can get rid of
  # - geo: either replaced by Orbit, and 3D does not exist anyway
  # - wkt:
  # - strum/macros
  # - regex
  # - num/num-integer (.div_ceil)
  ################################################################
  
  [features]
  default = ["flate2"] # gzip files supported by default
  
  # OBSERVATION RINEX Iterators & methods. Unlocks signal combinations.
  obs = []
  
  # NAVIGATION RINEX (decoded radio messages) Iterators & methods.
  # Unlocks navigation calculations including Kepler solver and Ut1Provider.
  nav = [
      "nalgebra",
      "anise",
  ]
  
  # Provides the special UT1-TAI methods
  ut1 = [
      "hifitime/ut1",
  ]
  
  # METEO RINEX dedicated Iterators & methods.
  meteo = []
  
  # CLOCK (Special RINEX) dedicated Iterators & methods.
  clock = []
  
  # ANTEX for accurate antenna characteristics: dedicated Iterators & methods.
  antex = []
  
  # BINEX RNX2BIN and BIN2RNX serdes
  binex = [
      "dep:binex"
  ]
  
  # RTCM RTCM2RNX and RNX2RTCM serdes
  rtcm = [
      "dep:rtcm-rs",
  ]
  
  # RINEX to GNSS protos
  protos = [
      "dep:gnss-protos",
  ]
  
  # RINEX to UBX serializer and UBX helpers
  ublox = [
      "dep:ublox",
      "dep:gnss-protos",
  ]
  
  # Unlock Quality Check and TEQC like methods & traits.
  qc = [
      "dep:gnss-qc-traits", 
      "dep:maud",
  ] 
  
  # Unlocks the Filter designer, pre and post processing algorithms.
  processing = [
      "qc",
      "gnss-qc-traits/processing",
  ]
  
  # Unlock all features, at once
  full = [
      "antex",
      "clock",
      "flate2",
      "meteo",
      "nav",
      "obs",
      "processing",
      "serde",
      "binex",
      "rtcm",
      "ut1",
      "ublox",
  ]
  
  [build-dependencies]
  serde_json = { version = "1.0", features = ["preserve_order"] }
  serde = { version = "1.0", default-features = false, features = ["derive"] }
  
  [dependencies]
  num = "0.4"
  regex = "1"
  strum = "0.26"
  thiserror = "2"
  lazy_static = "1.4"
  num-derive = "0.4"
  itertools = "0.14.0"
  # dms-coordinates = "1.3.1"
  # geo = { version = "0.28", optional = true }
  flate2 = { version = "1", optional = true }
  maud = { version = "0.26", optional = true }
  nalgebra = { version = "0.33.0", optional = true }
  bitflags = { version = "2.3", features = ["serde"] } 
  anise = { version = "0.5.3", optional = true }
  hifitime = { version = "4.1", features = ["serde", "std"] }
  wkt = { version = "0.14", default-features = false, optional = true }
  gnss-rs = { version = "2.5", features = ["serde", "domes", "cospar"] }
  gnss-qc-traits = { version = "0.4", features = ["html"], optional = true }
  serde = { version = "1.0", optional = true, default-features = false, features = ["derive"] }
  
  # Log is optional and our "debug" feature: use this if you're a dev.
  # Turn this on to obtain debug traces during parsing, formatting and calculations
  # Use DEBUG sensitivy for all traces.
  # Use normal sensitivy for error / warning traces.
  log = { version = "0.4", optional = true }
  
  # BINEX
  binex = { version = "0.5", optional = true }
  
  # RTCM
  rtcm-rs = { version = "0.11", optional = true }
  
  # RINEX to GNSS protos
  gnss-protos = { version = "0.0.2", optional = true, features = ["gps"] }
  
  # U-Blox
  # ublox = { version = "0.6", optional = true, features = ["std", "sfrbx-gps"] }
  ublox = { git = "https://github.com/ublox-rs/ublox", rev = "d43c425ee2904d577d06e70d7fbd80d98132a8a6", optional = true, features = ["std", "sfrbx-gps"] }
  
  # TODO: see if we can get rid of FromPrimitive ?
  num-traits = "0.2.15"
  
  # TODO: see if we can get rid of num.div_ceil() ?
  num-integer = "0.1.44"
  
  [dev-dependencies]
  flate2 = "1"
  rand = "0.8.4"
  serde_json = "1"
  criterion = "0.7"
  env_logger = "0.11"
  ublox = { git = "https://github.com/ublox-rs/ublox", rev = "d43c425ee2904d577d06e70d7fbd80d98132a8a6", features = ["std", "sfrbx-gps"] }
  
  [[bench]]
  name = "parsing"
  harness = false
  
  [[bench]]
  name = "formatting"
  harness = false
  
  [[bench]]
  name = "hatanaka"
  harness = false
  