From 731bc752ea749af533cfafcda1b4da535c4d22da Mon Sep 17 00:00:00 2001 From: oyelowo Date: Fri, 8 Dec 2023 17:30:01 -0700 Subject: [PATCH] Add meta info to docs --- migrator-macros/src/lib.rs | 7 + models/src/models/alien.rs | 7 + models/src/models/attributes.rs | 7 + models/src/models/combined.rs | 7 + models/src/models/configuration.rs | 7 + models/src/models/mod.rs | 7 + models/src/models/planet.rs | 7 + models/src/models/spaceship.rs | 7 + models/src/models/visits.rs | 7 + models/src/models/weapon.rs | 7 + proc-macros-helpers/src/lib.rs | 7 + query-builder-macros/src/lib.rs | 7 + .../src/query_builder/block.rs | 7 + query-builder-macros/src/query_builder/mod.rs | 7 + .../src/query_builder/query_turbo.rs | 7 + .../src/query_builder/tokenizer.rs | 7 + .../src/query_builder/transaction.rs | 7 + .../src/statement_parser/define_function.rs | 7 + .../src/statement_parser/define_funtion.rs | 141 ------------------ .../src/statement_parser/for_.rs | 7 + .../src/statement_parser/helpers.rs | 7 + .../src/statement_parser/if_else.rs | 7 + .../src/statement_parser/let_.rs | 7 + .../src/statement_parser/mod.rs | 7 + .../src/statement_parser/query.rs | 7 + .../src/statement_parser/query_chain.rs | 7 + .../src/statement_parser/return_.rs | 7 + .../src/statement_parser/transaction.rs | 7 + 28 files changed, 189 insertions(+), 141 deletions(-) delete mode 100644 query-builder-macros/src/statement_parser/define_funtion.rs diff --git a/migrator-macros/src/lib.rs b/migrator-macros/src/lib.rs index cc3e111b74..36a1c5315a 100644 --- a/migrator-macros/src/lib.rs +++ b/migrator-macros/src/lib.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + mod migration; use migration::generate_embedded_migrations; use proc_macro::TokenStream; diff --git a/models/src/models/alien.rs b/models/src/models/alien.rs index 5180dbb820..b609f55640 100644 --- a/models/src/models/alien.rs +++ b/models/src/models/alien.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use std::time::Duration; use crate::{AlienVisitsPlanet, Planet, Rocket, SpaceShip, Weapon}; diff --git a/models/src/models/attributes.rs b/models/src/models/attributes.rs index 84c5b29534..0930950fab 100644 --- a/models/src/models/attributes.rs +++ b/models/src/models/attributes.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + // use super::studentwithgranularattributes; use serde::{Deserialize, Serialize}; use std::time::Duration; diff --git a/models/src/models/combined.rs b/models/src/models/combined.rs index 5a563b03eb..fa7b51938d 100644 --- a/models/src/models/combined.rs +++ b/models/src/models/combined.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + #![allow(dead_code)] #![allow(non_upper_case_globals)] #![allow(non_snake_case)] diff --git a/models/src/models/configuration.rs b/models/src/models/configuration.rs index 541a18be78..e675559ce6 100644 --- a/models/src/models/configuration.rs +++ b/models/src/models/configuration.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use std::fmt::Display; use serde::{Deserialize, Serialize}; diff --git a/models/src/models/mod.rs b/models/src/models/mod.rs index a448c80fdd..ef44a5ad4e 100644 --- a/models/src/models/mod.rs +++ b/models/src/models/mod.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + pub mod alien; pub mod attributes; pub mod combined; diff --git a/models/src/models/planet.rs b/models/src/models/planet.rs index d01d61b643..f89efd0514 100644 --- a/models/src/models/planet.rs +++ b/models/src/models/planet.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use surreal_orm::{Node, SurrealSimpleId}; diff --git a/models/src/models/spaceship.rs b/models/src/models/spaceship.rs index ae4503c685..5b3696a02a 100644 --- a/models/src/models/spaceship.rs +++ b/models/src/models/spaceship.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use surreal_orm::{Model, Node, SurrealId}; diff --git a/models/src/models/visits.rs b/models/src/models/visits.rs index d94d39ca9e..acb8ec90d1 100644 --- a/models/src/models/visits.rs +++ b/models/src/models/visits.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use std::time::Duration; use chrono::{DateTime, Utc}; diff --git a/models/src/models/weapon.rs b/models/src/models/weapon.rs index 565f191ce6..bcc1fd3a78 100644 --- a/models/src/models/weapon.rs +++ b/models/src/models/weapon.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use surreal_orm::{Node, Object, SurrealId, SurrealSimpleId}; diff --git a/proc-macros-helpers/src/lib.rs b/proc-macros-helpers/src/lib.rs index 79ecba7340..e33b17e7bb 100644 --- a/proc-macros-helpers/src/lib.rs +++ b/proc-macros-helpers/src/lib.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use proc_macro2::{Span, TokenStream, TokenTree}; use proc_macro_crate::{crate_name, FoundCrate}; use quote::quote; diff --git a/query-builder-macros/src/lib.rs b/query-builder-macros/src/lib.rs index 9f6f38cd85..bfcfd2fc8b 100644 --- a/query-builder-macros/src/lib.rs +++ b/query-builder-macros/src/lib.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use proc_macro::TokenStream; use surreal_query_builder::sql; use syn::{parse_macro_input, LitStr}; diff --git a/query-builder-macros/src/query_builder/block.rs b/query-builder-macros/src/query_builder/block.rs index 1eb9106456..d075a37885 100644 --- a/query-builder-macros/src/query_builder/block.rs +++ b/query-builder-macros/src/query_builder/block.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use proc_macro::TokenStream; use syn::parse_macro_input; diff --git a/query-builder-macros/src/query_builder/mod.rs b/query-builder-macros/src/query_builder/mod.rs index c2872a18f3..cb155b3a02 100644 --- a/query-builder-macros/src/query_builder/mod.rs +++ b/query-builder-macros/src/query_builder/mod.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + pub(crate) mod block; pub(crate) mod query_turbo; pub(crate) mod tokenizer; diff --git a/query-builder-macros/src/query_builder/query_turbo.rs b/query-builder-macros/src/query_builder/query_turbo.rs index 5fe052fef5..62cd53631b 100644 --- a/query-builder-macros/src/query_builder/query_turbo.rs +++ b/query-builder-macros/src/query_builder/query_turbo.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use proc_macro::TokenStream; use syn::parse_macro_input; diff --git a/query-builder-macros/src/query_builder/tokenizer.rs b/query-builder-macros/src/query_builder/tokenizer.rs index 23acd48ca1..499a5d75fa 100644 --- a/query-builder-macros/src/query_builder/tokenizer.rs +++ b/query-builder-macros/src/query_builder/tokenizer.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use crate::statement_parser::query_chain::{GeneratedCode, QueriesChainParser}; use proc_macros_helpers::get_crate_name; use quote::quote; diff --git a/query-builder-macros/src/query_builder/transaction.rs b/query-builder-macros/src/query_builder/transaction.rs index 026d97cb5b..43fdeba091 100644 --- a/query-builder-macros/src/query_builder/transaction.rs +++ b/query-builder-macros/src/query_builder/transaction.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use proc_macro::TokenStream; use syn::parse_macro_input; diff --git a/query-builder-macros/src/statement_parser/define_function.rs b/query-builder-macros/src/statement_parser/define_function.rs index 2a6ce4cce9..c68e882fcf 100644 --- a/query-builder-macros/src/statement_parser/define_function.rs +++ b/query-builder-macros/src/statement_parser/define_function.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use std::fmt::Display; use proc_macro::TokenStream; diff --git a/query-builder-macros/src/statement_parser/define_funtion.rs b/query-builder-macros/src/statement_parser/define_funtion.rs deleted file mode 100644 index 69d7f3de5f..0000000000 --- a/query-builder-macros/src/statement_parser/define_funtion.rs +++ /dev/null @@ -1,141 +0,0 @@ -/// A macro to generate a function definition statement and the corresponding helper function. -/// e.g. `define_function!(get_it(first: bool, last: string, birthday: string) { let person = "43"; return person; });` -/// generates a `get_it_statement` itself and `get_it` helper function created by the macro. -/// -/// # Arguments -/// * `function definition` - The function definition -/// -/// # Example -/// ```rust -/// # use surreal_query_builder as surreal_orm; -/// use surreal_orm::{*, statements::define_function}; -/// -/// // The below generates a `get_it_statement` itself and `get_it` helper function created by the macro. -/// define_function!(get_it(first: bool, last: string, birthday: string) { -/// let person = "43"; -/// return person; -/// }); -/// ``` -/// -/// ```rust, ignore -/// // The below generates a `get_person_statement` itself and `get_person` helper function created by the macro. -/// define_function!(get_person(first_arg: string, last_arg: string, birthday_arg: string) { -/// let person = select(All) -/// .from(SpaceShip::table_name()) -/// .where_( -/// cond(SpaceShip::schema().id.equal(&first_arg)) -/// .and(SpaceShip::schema().name.equal(&last_arg)) -/// .and(SpaceShip::schema().created.equal(&birthday_arg)), -/// ); -/// -/// return if_(person.with_path::(index(0)).id.is_not(NONE)) -/// .then(person.with_path::(index(0))) -/// .else_( -/// create::( -/// vec![ -/// SpaceShip::schema().id.equal_to(&first_arg), -/// SpaceShip::schema().name.equal_to(&last_arg), -/// SpaceShip::schema().created.equal_to(&birthday_arg), -/// ] -/// ) -/// ).end(); -/// }); -/// ``` -#[macro_export] -macro_rules! define_function_ { - ($function_name:ident ($($param:ident : $type:ident),* ) {$(let $var:ident = $value:expr;)* return $expr:expr;}) => { - macro_rules! check_field_type { - (any) => { - $crate::ValueLike - }; - (array) => { - $crate::ArrayLike - }; - (bool) => { - $crate::BoolLike - }; - (datetime) => { - $crate::DatetimeLike - }; - (string) => { - $crate::StrandLike - }; - (number) => { - $crate::NumberLike - }; - (int) => { - $crate::NumberLike - }; - (float) => { - $crate::NumberLike - }; - (decimal) => { - $crate::NumberLike - }; - (duration) => { - $crate::DurationLike - }; - (object) => { - $crate::ObjectLike - }; - (record) => { - $crate::ThingLike - }; - (geometry) => { - $crate::GeometryLike - }; - ($field_type:expr) => {{ - compile_error!(concat!("Invalid field type: ", $field_type)); - unreachable!(); - }}; - } - $crate::internal_tools::paste! { - pub fn [<$function_name _statement>]() -> $crate::statements::DefineFunctionStatement{ - { - $( - let $param = $crate::Param::new(stringify!($param)); - // let field_type: $crate::FieldType = stringify!($type).parse().unwrap(); - - )* - - $( - let $var = $crate::statements::let_(stringify!($var)).equal_to($value); - )* - - let body = $crate:: - $( - chain(&$var). - )* - - chain($crate::statements::return_($expr)).as_block(); - - $crate::statements::define_function(stringify!($function_name)) - .params(vec![$(($param, stringify!($type).to_string())),*]) - .body(body) - } - } - - pub fn [<$function_name>]($($param: impl Into),*) -> $crate::Function { - use $crate::Buildable as _; - use $crate::Parametric as _; - { - let mut __private_bindings = vec![]; - let mut __private_args = vec![]; - $( - let $param: check_field_type!($type) = $param.into(); - __private_bindings.extend($param.get_bindings()); - __private_args.push($param.build()); - )* - - let build = format!("{}({})", stringify!(#function_name), __private_args.join(", ")); - $crate::Function::new() - .with_args_string(build) - .with_bindings(__private_bindings) - } - - } - } - }; -} - -pub use define_function_ as define_function; diff --git a/query-builder-macros/src/statement_parser/for_.rs b/query-builder-macros/src/statement_parser/for_.rs index 75d89b22e6..634e7bf44c 100644 --- a/query-builder-macros/src/statement_parser/for_.rs +++ b/query-builder-macros/src/statement_parser/for_.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use proc_macro::TokenStream; use proc_macros_helpers::get_crate_name; use quote::{quote, ToTokens}; diff --git a/query-builder-macros/src/statement_parser/helpers.rs b/query-builder-macros/src/statement_parser/helpers.rs index 2f9e14ded7..7fe5f84755 100644 --- a/query-builder-macros/src/statement_parser/helpers.rs +++ b/query-builder-macros/src/statement_parser/helpers.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use convert_case::{Case, Casing}; use proc_macros_helpers::get_crate_name; use quote::format_ident; diff --git a/query-builder-macros/src/statement_parser/if_else.rs b/query-builder-macros/src/statement_parser/if_else.rs index 2173390dee..4aadbb2f1b 100644 --- a/query-builder-macros/src/statement_parser/if_else.rs +++ b/query-builder-macros/src/statement_parser/if_else.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use proc_macro::TokenStream; use proc_macros_helpers::get_crate_name; use quote::{quote, ToTokens}; diff --git a/query-builder-macros/src/statement_parser/let_.rs b/query-builder-macros/src/statement_parser/let_.rs index 12e0765f85..d6c02e6dcb 100644 --- a/query-builder-macros/src/statement_parser/let_.rs +++ b/query-builder-macros/src/statement_parser/let_.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use super::return_::ReturnExpr; use syn::{ parse::{Parse, ParseStream}, diff --git a/query-builder-macros/src/statement_parser/mod.rs b/query-builder-macros/src/statement_parser/mod.rs index 2f2ad8d470..1787cd8821 100644 --- a/query-builder-macros/src/statement_parser/mod.rs +++ b/query-builder-macros/src/statement_parser/mod.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + pub mod define_function; pub mod for_; pub mod helpers; diff --git a/query-builder-macros/src/statement_parser/query.rs b/query-builder-macros/src/statement_parser/query.rs index 97b5fad9f0..b92d5ade29 100644 --- a/query-builder-macros/src/statement_parser/query.rs +++ b/query-builder-macros/src/statement_parser/query.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use std::fmt::Display; use syn::{ diff --git a/query-builder-macros/src/statement_parser/query_chain.rs b/query-builder-macros/src/statement_parser/query_chain.rs index 73846e5e93..d643bd32ad 100644 --- a/query-builder-macros/src/statement_parser/query_chain.rs +++ b/query-builder-macros/src/statement_parser/query_chain.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use proc_macro2::Ident; use quote::{format_ident, quote}; use syn::parse::{Parse, ParseStream}; diff --git a/query-builder-macros/src/statement_parser/return_.rs b/query-builder-macros/src/statement_parser/return_.rs index bf1edbb9b8..8a19e714e4 100644 --- a/query-builder-macros/src/statement_parser/return_.rs +++ b/query-builder-macros/src/statement_parser/return_.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use quote::{quote, ToTokens}; use syn::{ parse::{Parse, ParseStream}, diff --git a/query-builder-macros/src/statement_parser/transaction.rs b/query-builder-macros/src/statement_parser/transaction.rs index 9db9e0cd2c..8f5683db01 100644 --- a/query-builder-macros/src/statement_parser/transaction.rs +++ b/query-builder-macros/src/statement_parser/transaction.rs @@ -1,3 +1,10 @@ +/* + * Author: Oyelowo Oyedayo + * Email: oyelowo.oss@gmail.com + * Copyright (c) 2023 Oyelowo Oyedayo + * Licensed under the MIT license + */ + use syn::{ parse::{Parse, ParseStream}, Ident, Result as SynResult, Token,