Revision control

Copy as Markdown

# Naming Conventions
All names in this project should adhere to the guidelines outlined in this document.
## Rust Code
TL;DR: do what Rust's builtin warnings and clippy lints tell you
(and CI will fail if there are any unresolved warnings or clippy lints).
### Overview
- All variable names, function names, module names, and macros in Rust code should follow typical `snake_case` conventions.
- All Rust types, traits, structs, and enum variants must follow `UpperCamelCase`.
- Static and constant variables should be written in `SCREAMING_SNAKE_CASE`. s
For more in-depth Rust conventions, see the [Rust Style Guide](https://doc.rust-lang.org/1.0.0/style/style/naming/README.html).
### Examples:
```rust
fn sync15_passwords_get_all()
struct PushConfiguration{...}
const COMMON_SQL
```
## Swift Code
### Overview
- Names of types and protocols are `UpperCamelCase`.
- All other uses are `lowerCamelCase`.
For more in-depth Swift conventions, check out the [Swift API Design Guidelines](https://swift.org/documentation/api-design-guidelines/).
### Examples:
```swift
enum CheckChildren{...}
func checkTree()
public var syncKey: String
```
## Kotlin Code
If a source file contains only a top-level class, the source file should reflect the case-sensitive name of the class plus the *.kt* extension. Otherwise, if the source contains multiple top-level declarations, choose a name that describes the contents of the file, apply `UpperCamelCase` and append `.kt` extension.
### Overview
- Names of packages are always lower case and do not include underscores. Using multi-word names should be avoided. However, if used, they should be concatenated or use `lowerCamelCase`.
- Names of classes and objects use `UpperCamelCase`.
- Names of functions, properties, and local variables use `lowerCamelCase`.
For more in-depth Kotlin Conventions, see the [Kotlin Style Guide](https://kotlinlang.org/docs/reference/coding-conventions.html#naming-rules).
### Examples:
```kotlin
//FooBar.kt
class FooBar{...}
fun fromJSONString()
package mozilla.appservices.places
```