toql 0.1.2

The toql query language
Documentation

# Mapping names
Struct fields are mapped to Toql and database by default in a predictable way:
1. Table names are UpperCamelCase.
2. Column names are snake_case.
3. Toql fields are lowerCamelCase, dependend structs are separated with an underscore.


## Database
To adjust the default naming to an existing database scheme use the toql attributes `tables` and `columns` on the struct.
Possible values are 
- CamelCase
- snake_case
- SHOUTY\_SNAKE\_CASE
- mixedCase


```rust
#[derive(Toql)]
#[toql(tables="SHOUTY_SNAKE_CASE", columns="UpperCase")]
  struct UserRef {
		user_id: u32
		full_name: String,
}
```
is translated into 

`SELECT UserId, FullName FROM USER_REF;`

Or use `table` an the struct and `column` on the fields.


```rust
#[derive(Toql)]
#[toql(table="User")]
  struct UserRef {
	#[toql(column="id")]
		user_id: u32
		full_name: String,
}
```
is translated into 

`SELECT id, full_name FROM User`

## Toql fields

Toql fields on a struct are always mixed case, while dependencies are separated with an unserscore.

```rust
#[derive(Toql)]
#[toql(table="User")]
  struct UserRef {
	#[toql(column="id")]
		id: u32
		full_name: String,
		#[toql(self="counry_id", other="id")]
		county: Country
}
```
is referred to as

`id, fullName, country_id`



## Exclusion
To exclude fields from the query annotate it with `skip`.