Description Rust API Guidelines Checklist
Naming (crate aligns with Rust naming conventions)
Interoperability (crate interacts nicely with other library functionality)
Types eagerly implement common traits (C-COMMON-TRAITS )
Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug,
Display, Default
Conversions use the standard traits From, AsRef, AsMut (C-CONV-TRAITS )
Collections implement FromIterator and Extend (C-COLLECT )
Data structures implement Serde's Serialize, Deserialize (C-SERDE )
Types are Send and Sync where possible (C-SEND-SYNC )
Error types are meaningful and well-behaved (C-GOOD-ERR )
Binary number types provide Hex, Octal, Binary formatting (C-NUM-FMT )
Generic reader/writer functions take R: Read and W: Write by value (C-RW-VALUE )
Macros (crate presents well-behaved macros)
Documentation (crate is abundantly documented)
Crate level docs are thorough and include examples (C-CRATE-DOC )
All items have a rustdoc example (C-EXAMPLE )
Examples use ?, not try!, not unwrap (C-QUESTION-MARK )
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
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)
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)
Extra items (not from official guidelines)
Reactions are currently unavailable
You can’t perform that action at this time.
Rust API Guidelines Checklist
[ ] Casing conforms to RFC 430 (C-CASE)as_,to_,into_conventions (C-CONV)iter,iter_mut,into_iter(C-ITER)Copy,Clone,Eq,PartialEq,Ord,PartialOrd,Hash,Debug,Display,DefaultFrom,AsRef,AsMut(C-CONV-TRAITS)FromIteratorandExtend(C-COLLECT)Serialize,Deserialize(C-SERDE)SendandSyncwhere possible (C-SEND-SYNC)Hex,Octal,Binaryformatting (C-NUM-FMT)R: ReadandW: Writeby value (C-RW-VALUE)?, nottry!, notunwrap(C-QUESTION-MARK)keywords, categories
DerefandDerefMut(C-DEREF)boolorOption(C-CUSTOM-TYPE)bitflags, not enums (C-BITFLAG)Debug(C-DEBUG)Debugrepresentation is never empty (C-DEBUG-NONEMPTY)[x] Crate and its dependencies have a permissive license (C-PERMISSIVE)Extra items (not from official guidelines)
non_exhaustiveC-like enums should opt-out of integer casting unless they have well-defined associated constants