Skip to main content

better_auth_entity_codegen/
lib.rs

1//! Backend-neutral code generation shared by the `AuthEntity` derives.
2//!
3//! The `SeaORM` and `SQLx` derives both generate the `Auth*` entity trait
4//! implementations, the secondary-storage snapshot codec and the declared
5//! additional-field output here, so the wire-visible accessor behavior of an
6//! application model is identical whichever backend persists it.
7mod accessors;
8mod attributes;
9mod fields;
10mod secondary;
11mod writes;
12
13pub use accessors::auth_account_impl;
14pub use accessors::auth_session_impl;
15pub use accessors::auth_user_impl;
16pub use accessors::auth_verification_impl;
17pub use attributes::AuthAttributes;
18pub use attributes::named_fields;
19pub use attributes::parse_auth_attributes;
20pub use attributes::validate_core_fields;
21use better_auth_schema_registry as registry;
22pub use better_auth_schema_registry::EntityRole;
23pub use fields::EntityField;
24pub use fields::additional_output;
25pub use fields::camel_case;
26pub use fields::has_field;
27pub use fields::is_auth_timestamp;
28pub use fields::is_known_field;
29pub use fields::is_option;
30pub use fields::optional_field;
31use proc_macro2::{Ident, Span, TokenStream};
32use quote::quote;
33pub use secondary::secondary_codec;
34use syn::{Data, DeriveInput, Fields, FieldsNamed, LitStr, Type};
35pub use writes::Insert;
36pub use writes::SetField;
37pub use writes::generated_id;
38pub use writes::insert_values;
39pub use writes::update_statements;