Description
You can visit https://rust-lang-nursery.github.io/api-guidelines/ to get more information on each guideline.
If we are not complying with any point, open a separate issue and link the issue as the tracking issue here.
If a point is not applicable to uuid put two ~~ around it to cross it out.
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)
We do not have any collections.
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)
Uuid and associated adapters dont need Octal and Binary formatting.
Generic reader/writer functions take R: Read and W: Write by value (C-RW-VALUE)
We do not have reader/writer functions
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,
readme, keywords, categories
Crate sets html_root_url attribute "https://docs.rs/CRATE/X.Y.Z " (C-HTML-ROOT)
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)
Reactions are currently unavailable
You can’t perform that action at this time.
uuidput two~~around it to cross it out.as_,to_,into_conventions (C-CONV)Methods on collections that produce iterators followiter,iter_mut,into_iter(C-ITER)Iterator type names match the methods that produce them (C-ITER-TY)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)Uuidand associated adapters dont needOctalandBinaryformatting.Generic reader/writer functions takeR: ReadandW: Writeby value (C-RW-VALUE)Input syntax is evocative of the output (C-EVOCATIVE)Macros compose well with attributes (C-MACRO-ATTR)Item macros work anywhere that items are allowed (C-ANYWHERE)Item macros support visibility specifiers (C-MACRO-VIS)Type fragments are flexible (C-MACRO-TY)?, nottry!, notunwrap(C-QUESTION-MARK)readme, keywords, categories
Smart pointers do not add inherent methods (C-SMART-PTR)Operator overloads are unsurprising (C-OVERLOAD)Only smart pointers implementDerefandDerefMut(C-DEREF)boolorOption(C-CUSTOM-TYPE)Types for a set of flags arebitflags, not enums (C-BITFLAG)Destructors that may block have alternatives (C-DTOR-BLOCK)Debug(C-DEBUG)Debugrepresentation is never empty (C-DEBUG-NONEMPTY)