You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Function docs include error, panic, and safety considerations (C-FAILURE)
Prose contains hyperlinks to relevant things (C-LINK)
Cargo.toml includes all common metadata (C-METADATA)
authors, description, license, homepage, documentation, repository, keywords, categories ci: lint for cargo metadata #178
Release notes document all significant changes (C-RELNOTES)
Rustdoc does not show unhelpful implementation details (C-HIDDEN)
Predictability (crate enables legible code that acts how it looks)
Smart pointers do not add inherent methods (C-SMART-PTR)
Conversions live on the most specific type involved (C-CONV-SPECIFIC)
Functions with a clear receiver are methods (C-METHOD)
from https://rust-lang.github.io/api-guidelines/checklist.html
Naming (crate aligns with Rust naming conventions)
nonstandard-styleMethods on collections that produce iterators follow iter, iter_mut, into_iter (C-ITER)
Interoperability (crate interacts nicely with other library functionality)
Copyci: lint for missing Copy implementations #180CloneEqPartialEqOrdPartialOrdHashDebugci: lint for missing debug implementations #179DisplayDefaultclippy::new_without_defaultMacros (crate presents well-behaved macros)
Documentation (crate is abundantly documented)
authors, description, license, homepage, documentation, repository, keywords, categories
ci: lint for cargo metadata #178
Predictability (crate enables legible code that acts how it looks)
Flexibility (crate supports diverse real-world use cases)
Type safety (crate leverages the type system effectively)
Dependability (crate is unlikely to do the wrong thing)
Debuggability (crate is conducive to easy debugging)
Future proofing (crate is free to improve without breaking users' code)
Necessities (to whom they matter, they really matter)