mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2025-12-23 06:30:05 +00:00
* docs: add style guide Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * add comments section Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * add comment order Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * about error handling Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * about error logging Signed-off-by: Ruihang Xia <waynestxia@gmail.com> --------- Signed-off-by: Ruihang Xia <waynestxia@gmail.com>
1.4 KiB
1.4 KiB
GreptimeDB Style Guide
This style guide is intended to help contributors to GreptimeDB write code that is consistent with the rest of the codebase. It is a living document and will be updated as the codebase evolves.
It's mainly an complement to the Rust Style Guide.
Table of Contents
- Formatting
- Modules
- Comments
Formatting
- Place all
moddeclaration before anyuse. - Use
unimplemented!()instead oftodo!()for things that aren't likely to be implemented. - Add an empty line before and after declaration blocks.
- Place comment before attributes (
#[]) and derive (#[derive]).
Modules
- Use the file with same name instead of
mod.rsto define a module. E.g.:
.
├── cache
│ ├── cache_size.rs
│ └── write_cache.rs
└── cache.rs
Comments
- Add comments for public functions and structs.
- Prefer document comment (
///) over normal comment (//) for structs, fields, functions etc. - Add link (
[]) to struct, method, or any other reference. And make sure that link works.
Error handling
- Define a custom error type for the module if needed.
- Prefer
with_context()overcontext()when allocation is needed to construct an error. - Use
error!()orwarn!()macros in thecommon_telemetrycrate to log errors. E.g.:
error!(e; "Failed to do something");