Files
greptimedb/docs/style-guide.md
Ruihang Xia 7e56bf250b docs: add style guide (#3730)
* 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>
2024-04-17 11:28:02 +00:00

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 mod declaration before any use.
  • Use unimplemented!() instead of todo!() 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.rs to 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() over context() when allocation is needed to construct an error.
  • Use error!() or warn!() macros in the common_telemetry crate to log errors. E.g.:
error!(e; "Failed to do something");