content: # Copyright (c) Microsoft Corporation.
  # Licensed under the MIT License.
  
  disallowed-types = [
      { path = "std::sync::Mutex",   reason = "use parking_lot::Mutex"   },
      { path = "std::sync::Condvar", reason = "use parking_lot::Condvar" },
      { path = "std::sync::RwLock",  reason = "use parking_lot::RwLock"  },
  
      { path = "futures::stream::futures_unordered::FuturesUnordered", reason = "use unicycle::FuturesUnordered" },
  ]
  
  disallowed-macros = [
      { path = "futures::pin_mut", reason = "use std::pin::pin" },
      { path = "futures::ready", reason = "use std::task::ready" },
      { path = "tracing::enabled", reason = "https://github.com/tokio-rs/tracing/issues/2519" },
      { path = "openhcl_boot::boot_logger::debug_log", reason = "only use in local debugging, use log! if you want a production log message"},
  ]
  
  disallowed-methods = [
      { path = "futures::future::ready", reason = "use std::future::ready" },
      { path = "futures::future::pending", reason = "use std::future::pending" },
      # This is used by futures::select! and futures::join!, so leave it out for now.
      # { path = "futures::future::poll_fn", reason = "use std::future::poll_fn" },
  
      { path = "futures::task::noop_waker", reason = "use std::task::Waker::noop" },
      { path = "futures::task::noop_waker_ref", reason = "use std::task::Waker::noop" },
  
      { path = "futures::channel::mpsc::channel", reason = "use mesh or async-channel" },
      { path = "futures::channel::mpsc::unbounded", reason = "use mesh or async-channel" },
      { path = "futures::channel::oneshot::channel", reason = "use mesh or async-channel" },
  
      { path = "std::fs::canonicalize", reason = "you likely want std::path::absolute" },
      { path = "std::path::Path::canonicalize", reason = "you likely want std::path::absolute" },
  ]
  
  avoid-breaking-exported-api = false
  check-private-items = true
  