Software /
code /
prosody
File
doc/coding_style.txt @ 11103:73b8aaf55775 0.11
util.dbuffer: dynamic string buffer
Similar to util.ringbuffer (and shares almost identical API). Differences:
- size limit is optional and dynamic
- does not allocate a fixed buffer of max_size bytes
- focus on simply storing references to existing string objects where possible,
avoiding unnecessary allocations
- references are still stored in a ring buffer to enable use as a fast FIFO
Optional second parameter to new() provides the number of ring buffer segments. On
Lua 5.2 on my laptop, a segment is ~19 bytes. If the ring buffer fills up, the next
write will compact all strings into a single item.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 26 Jun 2020 16:41:31 +0100 |
parent | 8728:41c959c5c84b |
line wrap: on
line source
This file describes some coding styles to try and adhere to when contributing to this project. Please try to follow, and feel free to fix code you see not following this standard. == Indentation == 1 tab indentation for all blocks == Spacing == No space between function names and parenthesis and parenthesis and parameters: function foo(bar, baz) Single space between braces and key/value pairs in table constructors: { foo = "bar", bar = "foo" } == Local variable naming == In this project there are many places where use of globals is restricted, and locals used for faster access. Local versions of standard functions should follow the below form: math.random -> m_random string.char -> s_char == Miscellaneous == Single-statement blocks may be written on one line when short if foo then bar(); end 'do' and 'then' keywords should be placed at the end of the line, and never on a line by themself.