Rename sqlx(rename) attribute to sqlx(type_name)

This commit is contained in:
Jonas Platte 2020-12-29 17:31:48 +01:00 committed by Ryan Leckey
parent 74835bfe58
commit fd8b2b7f8a
6 changed files with 28 additions and 23 deletions

View File

@ -17,6 +17,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
.fetch_all(&mut conn).await?;
```
- [[#940]] Rename the `#[sqlx(rename)]` attribute used to specify the type name on the database
side to `#[sqlx(type_name)]` [[@jplatte]].
## 0.4.2 - 2020-12-19
- [[#908]] Fix `whoami` crash on FreeBSD platform [[@fundon]] [[@AldaronLau]]

View File

@ -110,7 +110,7 @@
//!
//! ```rust,ignore
//! #[derive(sqlx::Type)]
//! #[sqlx(rename = "inventory_item")]
//! #[sqlx(type_name = "inventory_item")]
//! struct InventoryItem {
//! name: String,
//! supplier_id: i32,
@ -135,7 +135,7 @@
//!
//! ```rust,ignore
//! #[derive(sqlx::Type)]
//! #[sqlx(rename = "mood", rename_all = "lowercase")]
//! #[sqlx(type_name = "mood", rename_all = "lowercase")]
//! enum Mood { Sad, Ok, Happy }
//! ```
//!

View File

@ -128,7 +128,7 @@ pub use json::Json;
///
/// ```rust,ignore
/// #[derive(sqlx::Type)]
/// #[sqlx(rename = "color")] // only for PostgreSQL to match a type definition
/// #[sqlx(type_name = "color")] // only for PostgreSQL to match a type definition
/// #[sqlx(rename_all = "lowercase")]
/// enum Color { Red, Green, Blue }
/// ```
@ -141,7 +141,7 @@ pub use json::Json;
///
/// ```rust,ignore
/// #[derive(sqlx::Type)]
/// #[sqlx(rename = "interface_type")]
/// #[sqlx(type_name = "interface_type")]
/// struct InterfaceType {
/// name: String,
/// supplier_id: i32,

View File

@ -39,7 +39,7 @@ pub enum RenameAll {
pub struct SqlxContainerAttributes {
pub transparent: bool,
pub rename: Option<String>,
pub type_name: Option<String>,
pub rename_all: Option<RenameAll>,
pub repr: Option<Ident>,
}
@ -52,7 +52,7 @@ pub struct SqlxChildAttributes {
pub fn parse_container_attributes(input: &[Attribute]) -> syn::Result<SqlxContainerAttributes> {
let mut transparent = None;
let mut repr = None;
let mut rename = None;
let mut type_name = None;
let mut rename_all = None;
for attr in input
@ -94,7 +94,9 @@ pub fn parse_container_attributes(input: &[Attribute]) -> syn::Result<SqlxContai
path,
lit: Lit::Str(val),
..
}) if path.is_ident("rename") => try_set!(rename, val.value(), value),
}) if path.is_ident("type_name") => {
try_set!(type_name, val.value(), value)
}
u => fail!(u, "unexpected attribute"),
},
@ -120,7 +122,7 @@ pub fn parse_container_attributes(input: &[Attribute]) -> syn::Result<SqlxContai
Ok(SqlxContainerAttributes {
transparent: transparent.unwrap_or(false),
repr,
rename,
type_name,
rename_all,
})
}

View File

@ -83,7 +83,7 @@ fn expand_derive_has_sql_type_transparent(
let mut tts = proc_macro2::TokenStream::new();
if cfg!(feature = "postgres") {
let ty_name = attr.rename.unwrap_or_else(|| ident.to_string());
let ty_name = attr.type_name.unwrap_or_else(|| ident.to_string());
tts.extend(quote!(
impl sqlx::Type< sqlx::postgres::Postgres > for #ident #ty_generics {
@ -142,7 +142,7 @@ fn expand_derive_has_sql_type_strong_enum(
}
if cfg!(feature = "postgres") {
let ty_name = attributes.rename.unwrap_or_else(|| ident.to_string());
let ty_name = attributes.type_name.unwrap_or_else(|| ident.to_string());
tts.extend(quote!(
impl sqlx::Type< sqlx::Postgres > for #ident {
@ -180,7 +180,7 @@ fn expand_derive_has_sql_type_struct(
let mut tts = proc_macro2::TokenStream::new();
if cfg!(feature = "postgres") {
let ty_name = attributes.rename.unwrap_or_else(|| ident.to_string());
let ty_name = attributes.type_name.unwrap_or_else(|| ident.to_string());
tts.extend(quote!(
impl sqlx::Type< sqlx::Postgres > for #ident {

View File

@ -21,7 +21,7 @@ enum Weak {
// "Strong" enums can map to TEXT (25)
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "text")]
#[sqlx(type_name = "text")]
#[sqlx(rename_all = "lowercase")]
enum Strong {
One,
@ -33,7 +33,7 @@ enum Strong {
// rename_all variants
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "color_lower")]
#[sqlx(type_name = "color_lower")]
#[sqlx(rename_all = "lowercase")]
enum ColorLower {
Red,
@ -42,7 +42,7 @@ enum ColorLower {
}
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "color_snake")]
#[sqlx(type_name = "color_snake")]
#[sqlx(rename_all = "snake_case")]
enum ColorSnake {
RedGreen,
@ -50,7 +50,7 @@ enum ColorSnake {
}
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "color_upper")]
#[sqlx(type_name = "color_upper")]
#[sqlx(rename_all = "UPPERCASE")]
enum ColorUpper {
Red,
@ -59,7 +59,7 @@ enum ColorUpper {
}
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "color_screaming_snake")]
#[sqlx(type_name = "color_screaming_snake")]
#[sqlx(rename_all = "SCREAMING_SNAKE_CASE")]
enum ColorScreamingSnake {
RedGreen,
@ -67,7 +67,7 @@ enum ColorScreamingSnake {
}
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "color_kebab_case")]
#[sqlx(type_name = "color_kebab_case")]
#[sqlx(rename_all = "kebab-case")]
enum ColorKebabCase {
RedGreen,
@ -75,7 +75,7 @@ enum ColorKebabCase {
}
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "color_mixed_case")]
#[sqlx(type_name = "color_mixed_case")]
#[sqlx(rename_all = "camelCase")]
enum ColorCamelCase {
RedGreen,
@ -83,7 +83,7 @@ enum ColorCamelCase {
}
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "color_camel_case")]
#[sqlx(type_name = "color_camel_case")]
#[sqlx(rename_all = "PascalCase")]
enum ColorPascalCase {
RedGreen,
@ -92,7 +92,7 @@ enum ColorPascalCase {
// "Strong" enum can map to a custom type
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "mood")]
#[sqlx(type_name = "mood")]
#[sqlx(rename_all = "lowercase")]
enum Mood {
Ok,
@ -103,7 +103,7 @@ enum Mood {
// Records must map to a custom type
// Note that all types are types in Postgres
#[derive(PartialEq, Debug, sqlx::Type)]
#[sqlx(rename = "inventory_item")]
#[sqlx(type_name = "inventory_item")]
struct InventoryItem {
name: String,
supplier_id: Option<i32>,
@ -112,12 +112,12 @@ struct InventoryItem {
// Custom range type
#[derive(sqlx::Type, Debug, PartialEq)]
#[sqlx(rename = "float_range")]
#[sqlx(type_name = "float_range")]
struct FloatRange(PgRange<f64>);
// Custom domain type
#[derive(sqlx::Type, Debug)]
#[sqlx(rename = "int4rangeL0pC")]
#[sqlx(type_name = "int4rangeL0pC")]
struct RangeInclusive(PgRange<i32>);
test_type!(transparent<Transparent>(Postgres,