From 0c67edc0f7ebb7e6a265d4a925bc368e460cd8cb Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 16 Oct 2020 12:50:09 +0200 Subject: Expand code order section --- docs/dev/style.md | 61 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/docs/dev/style.md b/docs/dev/style.md index 883a6845d..7a64a0d22 100644 --- a/docs/dev/style.md +++ b/docs/dev/style.md @@ -366,27 +366,66 @@ People read things from top to bottom, so place most important things first. Specifically, if all items except one are private, always put the non-private item on top. -Put `struct`s and `enum`s first, functions and impls last. - -Do - ```rust // Good -struct Foo { - bars: Vec +pub(crate) fn frobnicate() { + Helper::act() +} + +#[derive(Default)] +struct Helper { stuff: i32 } + +impl Helper { + fn act(&self) { + + } +} + +// Not as good +#[derive(Default)] +struct Helper { stuff: i32 } + +pub(crate) fn frobnicate() { + Helper::act() } -struct Bar; +impl Helper { + fn act(&self) { + + } +} ``` -rather than +If there's a mixture of private and public items, put public items first. +If function bodies are folded in the editor, the source code should read as documentation for the public API. + +Put `struct`s and `enum`s first, functions and impls last. Order types declarations in top-down manner. ```rust +// Good +struct Parent { + children: Vec +} + +struct Child; + +impl Parent { +} + +impl Child { +} + // Not as good -struct Bar; +struct Child; -struct Foo { - bars: Vec +impl Child { +} + +struct Parent { + children: Vec +} + +impl Parent { } ``` -- cgit v1.2.3