STYLE: extern and use statements rules

This commit is contained in:
Emma Tebibyte 2024-07-19 16:41:02 -06:00
parent 9f2447ce94
commit 3ba6682ab3
Signed by: emma
GPG Key ID: 06FA419A1698C270

31
STYLE
View File

@ -1,6 +1,8 @@
0. Braces are mandatory for all control flow, as it improves the visibility of 0. Braces are mandatory for all control flow, as it improves the visibility of
scope. scope.
1. Nested indentation should be kept to a minimum. 1. Nested indentation should be kept to a minimum.
2. Empty lines should be placed between different kinds of statements: 2. Empty lines should be placed between different kinds of statements:
int t; int t;
@ -22,7 +24,7 @@
return io; return io;
3. Each block of code should be indented once more than the keyword which 3. Each block of code should be indented once more than the keyword which
initiated the block: initiated the block:
switch (c) { switch (c) {
case 'e': mode |= EQUAL; break; case 'e': mode |= EQUAL; break;
@ -32,13 +34,13 @@
} }
4. In C, spaces should be placed in control flow statements after the keyword 4. In C, spaces should be placed in control flow statements after the keyword
and before the opening brace: and before the opening brace:
for (i = 2; i < argc; ++i) { for (i = 2; i < argc; ++i) {
5. If a function, a C control flow statement, or a Rust macro has arguments that 5. If a function, a C control flow statement, or a Rust macro has arguments that
cause the statement to be broken into multiple lines, this should be done by cause the statement to be broken into multiple lines, this should be done by
placing the arguments on a new line inside the parentheses: placing the arguments on a new line inside the parentheses:
let usage = format!( let usage = format!(
"Usage: {} [-d delimiter] index command [args...]", "Usage: {} [-d delimiter] index command [args...]",
@ -46,7 +48,7 @@
); );
6. If Rust function arguments or fields are on their own lines, they should 6. If Rust function arguments or fields are on their own lines, they should
always have a trailing comma: always have a trailing comma:
return Err(EvaluationError { return Err(EvaluationError {
message: format!("{}: Invalid token", i), message: format!("{}: Invalid token", i),
@ -54,21 +56,32 @@
}) })
7. If text is on the same line as a brace, spaces should be placed after an 7. If text is on the same line as a brace, spaces should be placed after an
opening curly brace and before a closing one: opening curly brace and before a closing one:
use sysexits::{ EX_DATAERR, EX_IOERR, EX_UNAVAILABLE, EX_USAGE }; use sysexits::{ EX_DATAERR, EX_IOERR, EX_UNAVAILABLE, EX_USAGE };
8. If a control flow statement is short enough to be easily understood in a 8. If a control flow statement is short enough to be easily understood in a
glance, it may be placed on a single line: glance, it may be placed on a single line:
if (!argc < 0) { usage(program_name); } if (!argc < 0) { usage(program_name); }
9. In C, note everything you use from a library in a comment subsequent to its 9. In C, note everything you use from a library in a comment subsequent to its
#include statement: #include statement:
#include <unistd.h> /* close(2), getopt(3), lseek(2), read(2), write(2), #include <unistd.h> /* close(2), getopt(3), lseek(2), read(2), write(2),
* optarg, optind, STDIN_FILENO, STDOUT_FILENO */ * optarg, optind, STDIN_FILENO, STDOUT_FILENO */
10. In Rust, place extern statements after use statements that include standard
library crates. Group alike statements:
use std::fs::Path;
extern crate strerror;
extern crate sysexits;
use strerror::StrError;
use sysexits::{ EX_OSERR, EX_USAGE };
-- --
Copyright © 2024 Emma Tebibyte <emma@tebibyte.media> Copyright © 2024 Emma Tebibyte <emma@tebibyte.media>