1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
use heck::{CamelCase, SnakeCase}; use proc_macro2::Ident; use quote::format_ident; #[derive(Clone, Debug)] pub struct PrimaryKey { pub(crate) name: String, } impl PrimaryKey { pub fn get_name_snake_case(&self) -> Ident { format_ident!("{}", self.name.to_snake_case()) } pub fn get_name_camel_case(&self) -> Ident { format_ident!("{}", self.name.to_camel_case()) } } #[cfg(test)] mod tests { use crate::PrimaryKey; fn setup() -> PrimaryKey { PrimaryKey { name: "cake_id".to_owned(), } } #[test] fn test_get_name_snake_case() { let primary_key = setup(); assert_eq!(primary_key.get_name_snake_case(), "cake_id".to_owned()); } #[test] fn test_get_name_camel_case() { let primary_key = setup(); assert_eq!(primary_key.get_name_camel_case(), "CakeId".to_owned()); } }