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
#[macro_export] macro_rules! impl_objects { ($entity:ty) => { impl $entity { /// Ajoute un gestionnaire d'objets de style Django à l'entité /// /// Cette macro ajoute un champ constant `objects` qui permet d'utiliser la syntaxe /// Django-like: `User::objects.filter(...).all(&db).await` /// /// # Exemple /// /// ```rust /// use runique::impl_objects; /// /// #[derive(Clone, Debug, DeriveEntityModel)] /// #[sea_orm(table_name = "users")] /// pub struct Model { /* ... */ } /// /// #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] /// pub enum Relation {} /// /// impl ActiveModelBehavior for ActiveModel {} /// /// impl_objects!(Entity); // Ajoute User::objects /// ``` #[allow(non_upper_case_globals)] pub const objects: $crate::macros::bdd::objects::Objects<Self> = $crate::macros::bdd::objects::Objects::new(); } }; }