Rename_all attribute documentation
This commit is contained in:
parent
d509b3bc52
commit
f4b181a201
@ -58,15 +58,15 @@ fn rename_all_overrides() {
|
||||
#[derive(Debug, ToSql, FromSql, PartialEq)]
|
||||
#[postgres(name = "mood", rename_all = "snake_case")]
|
||||
enum Mood {
|
||||
Sad,
|
||||
VerySad,
|
||||
#[postgres(name = "okay")]
|
||||
Ok,
|
||||
Happy,
|
||||
VeryHappy,
|
||||
}
|
||||
|
||||
let mut conn = Client::connect("user=postgres host=localhost port=5433", NoTls).unwrap();
|
||||
conn.execute(
|
||||
"CREATE TYPE pg_temp.mood AS ENUM ('sad', 'okay', 'happy')",
|
||||
"CREATE TYPE pg_temp.mood AS ENUM ('very_sad', 'okay', 'very_happy')",
|
||||
&[],
|
||||
)
|
||||
.unwrap();
|
||||
@ -75,9 +75,9 @@ fn rename_all_overrides() {
|
||||
&mut conn,
|
||||
"mood",
|
||||
&[
|
||||
(Mood::Sad, "'sad'"),
|
||||
(Mood::VerySad, "'very_sad'"),
|
||||
(Mood::Ok, "'okay'"),
|
||||
(Mood::Happy, "'happy'"),
|
||||
(Mood::VeryHappy, "'very_happy'"),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
@ -17,10 +17,10 @@ use crate::overrides::Overrides;
|
||||
pub fn expand_derive_fromsql(input: DeriveInput) -> Result<TokenStream, Error> {
|
||||
let overrides = Overrides::extract(&input.attrs, true)?;
|
||||
|
||||
if overrides.name.is_some() && overrides.transparent {
|
||||
if (overrides.name.is_some() || overrides.rename_all.is_some()) && overrides.transparent {
|
||||
return Err(Error::new_spanned(
|
||||
&input,
|
||||
"#[postgres(transparent)] is not allowed with #[postgres(name = \"...\")]",
|
||||
"#[postgres(transparent)] is not allowed with #[postgres(name = \"...\")] or #[postgres(rename_all = \"...\")]",
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -15,10 +15,10 @@ use crate::overrides::Overrides;
|
||||
pub fn expand_derive_tosql(input: DeriveInput) -> Result<TokenStream, Error> {
|
||||
let overrides = Overrides::extract(&input.attrs, true)?;
|
||||
|
||||
if overrides.name.is_some() && overrides.transparent {
|
||||
if (overrides.name.is_some() || overrides.rename_all.is_some()) && overrides.transparent {
|
||||
return Err(Error::new_spanned(
|
||||
&input,
|
||||
"#[postgres(transparent)] is not allowed with #[postgres(name = \"...\")]",
|
||||
"#[postgres(transparent)] is not allowed with #[postgres(name = \"...\")] or #[postgres(rename_all = \"...\")]",
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -125,6 +125,37 @@
|
||||
//! Happy,
|
||||
//! }
|
||||
//! ```
|
||||
//!
|
||||
//! Alternatively, the `#[postgres(rename_all = "...")]` attribute can be used to rename all fields or variants
|
||||
//! with the chosen casing convention. This will not affect the struct or enum's type name. Note that
|
||||
//! `#[postgres(name = "...")]` takes precendence when used in conjunction with `#[postgres(rename_all = "...")]`:
|
||||
//!
|
||||
//! ```rust
|
||||
//! # #[cfg(feature = "derive")]
|
||||
//! use postgres_types::{ToSql, FromSql};
|
||||
//!
|
||||
//! # #[cfg(feature = "derive")]
|
||||
//! #[derive(Debug, ToSql, FromSql)]
|
||||
//! #[postgres(name = "mood", rename_all = "snake_case")]
|
||||
//! enum Mood {
|
||||
//! VerySad, // very_sad
|
||||
//! #[postgres(name = "ok")]
|
||||
//! Ok, // ok
|
||||
//! VeryHappy, // very_happy
|
||||
//! }
|
||||
//! ```
|
||||
//!
|
||||
//! The following case conventions are supported:
|
||||
//! - `"lowercase"`
|
||||
//! - `"UPPERCASE"`
|
||||
//! - `"PascalCase"`
|
||||
//! - `"camelCase"`
|
||||
//! - `"snake_case"`
|
||||
//! - `"SCREAMING_SNAKE_CASE"`
|
||||
//! - `"kebab-case"`
|
||||
//! - `"SCREAMING-KEBAB-CASE"`
|
||||
//! - `"Train-Case"`
|
||||
|
||||
#![doc(html_root_url = "https://docs.rs/postgres-types/0.2")]
|
||||
#![warn(clippy::all, rust_2018_idioms, missing_docs)]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user