diff --git a/STYLE b/STYLE index 44d8846..1e6dadb 100644 --- a/STYLE +++ b/STYLE @@ -68,9 +68,7 @@ Use 4. Compiler options that yield the most useful warnings, such as -Wpedantic in a lot of C compilers. Fix the warnings, too [0]. - 5. Fixed bounds for loops [0]. - - 6. One more level of indentation and one argument per line when a function + 5. One more level of indentation and one argument per line when a function call or statement header is too long to fit on one line: let usage = format!( @@ -78,7 +76,7 @@ Use argv[0], ); - 7. One more level of indentation than the keyword that initiated a multi-line + 6. One more level of indentation than the keyword that initiated a multi-line block. if (condition) { @@ -86,7 +84,7 @@ Use statement; } - 8. The return value of all non-void functions, or explicitly ignore them (like + 7. The return value of all non-void functions, or explicitly ignore them (like casting to void in C) [0]: if ((a = malloc(sizeof char)) == NULL) { /* handle this error */ @@ -94,21 +92,21 @@ Use return EX_OSERR; /* ...because the program is exiting anyway */ } - 9. The smallest possible scope for data [0]. + 8. The smallest possible scope for data [0]. - 10. Comments noting all the symbols and macros used from a C header file, next + 9. Comments noting all the symbols and macros used from a C header file, next to its include macro: #include /* close(2), getopt(3), lseek(2), read(2), write(2), (space-aligned) * optarg, optind, STDIN_FILENO, STDOUT_FILENO */ - 11. Spaces in control flow statements, after the keyword and before the + 10. Spaces in control flow statements, after the keyword and before the opening brace: for (i = 2; i < argc; ++i) { - 12. In Rust, a trailing comma on all arguments or fields that are on their own + 11. In Rust, a trailing comma on all arguments or fields that are on their own lines: return Err(EvaluationError { @@ -116,7 +114,7 @@ Use code: EX_DATAERR, }) - 13. In Rust, place extern statements after use statements that include standard + 12. In Rust, place extern statements after use statements that include standard library crates. Group like statements: use std::fs::Path; @@ -127,22 +125,24 @@ Use use strerror::StrError; use sysexits::{ EX_OSERR, EX_USAGE }; - 14. If text is on the same line as a brace, spaces after an opening brace and + 13. If text is on the same line as a brace, spaces after an opening brace and before a closing one: use sysexits::{ EX_DATAERR, EX_IOERR, EX_UNAVAILABLE, EX_USAGE }; - 15. Alphabetic sorting, where applicable: + 14. Alphabetic sorting, where applicable: use std::io::{ BufWriter, Read, Write, stderr, stdin, stdout } - 16. In Rust, use the to_owned() method on string types (str, OsStr, CStr, etc.) + 15. In Rust, use the to_owned() method on string types (str, OsStr, CStr, etc.) and the to_string() method on other types. Avoid ===== + 16. Unbounded loops [0]. + 17. Function pointers [0]. 18. Heap memory allocation [0].