From 593a4a01439997870a07d76303a53b0d08e86de3 Mon Sep 17 00:00:00 2001 From: Virgiel Date: Sat, 21 Oct 2023 16:23:32 +0200 Subject: [PATCH] Add retrocompatible import paths --- benches/generated/src/queries.rs | 12 +++++ crates/cornucopia/src/codegen/queries.rs | 37 ++++++++++++++- test_codegen/codegen/src/queries.rs | 60 ++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 1 deletion(-) diff --git a/benches/generated/src/queries.rs b/benches/generated/src/queries.rs index 0c78cc21..ca62f15b 100644 --- a/benches/generated/src/queries.rs +++ b/benches/generated/src/queries.rs @@ -1,3 +1,15 @@ // This file was generated with `cornucopia`. Do not modify. pub mod bench; +pub mod sync { + pub mod bench { + pub use super::super::bench::sync::*; + pub use super::super::bench::*; + } +} +pub mod async_ { + pub mod bench { + pub use super::super::bench::async_::*; + pub use super::super::bench::*; + } +} diff --git a/crates/cornucopia/src/codegen/queries.rs b/crates/cornucopia/src/codegen/queries.rs index 6cbb0dd4..43e29a68 100644 --- a/crates/cornucopia/src/codegen/queries.rs +++ b/crates/cornucopia/src/codegen/queries.rs @@ -402,8 +402,43 @@ pub(crate) fn gen_queries(vfs: &mut Vfs, preparation: &Preparation, settings: Co } let modules_name = preparation.modules.iter().map(|module| &module.info.name); - let content = code!($WARNING + + let mut content = code!($WARNING $(pub mod $modules_name;) ); + if settings.gen_async && settings.gen_sync { + let sync = |w: &mut String| { + for module in &preparation.modules { + let name = &module.info.name; + code!(w => + pub mod ${name} { + pub use super::super::${name}::*; + pub use super::super::${name}::sync::*; + } + ); + } + }; + let async_ = |w: &mut String| { + for module in &preparation.modules { + let name = &module.info.name; + code!(w => + pub mod ${name} { + pub use super::super::${name}::*; + pub use super::super::${name}::async_::*; + } + ); + } + }; + let content = &mut content; + code!(content => + pub mod sync { + $!sync + } + pub mod async_ { + $!async_ + } + ) + } + vfs.add("src/queries.rs", content); } diff --git a/test_codegen/codegen/src/queries.rs b/test_codegen/codegen/src/queries.rs index 50e90511..2ceecb9d 100644 --- a/test_codegen/codegen/src/queries.rs +++ b/test_codegen/codegen/src/queries.rs @@ -7,3 +7,63 @@ pub mod nullity; pub mod params; pub mod stress; pub mod syntax; +pub mod sync { + pub mod copy { + pub use super::super::copy::sync::*; + pub use super::super::copy::*; + } + pub mod domain { + pub use super::super::domain::sync::*; + pub use super::super::domain::*; + } + pub mod named { + pub use super::super::named::sync::*; + pub use super::super::named::*; + } + pub mod nullity { + pub use super::super::nullity::sync::*; + pub use super::super::nullity::*; + } + pub mod params { + pub use super::super::params::sync::*; + pub use super::super::params::*; + } + pub mod stress { + pub use super::super::stress::sync::*; + pub use super::super::stress::*; + } + pub mod syntax { + pub use super::super::syntax::sync::*; + pub use super::super::syntax::*; + } +} +pub mod async_ { + pub mod copy { + pub use super::super::copy::async_::*; + pub use super::super::copy::*; + } + pub mod domain { + pub use super::super::domain::async_::*; + pub use super::super::domain::*; + } + pub mod named { + pub use super::super::named::async_::*; + pub use super::super::named::*; + } + pub mod nullity { + pub use super::super::nullity::async_::*; + pub use super::super::nullity::*; + } + pub mod params { + pub use super::super::params::async_::*; + pub use super::super::params::*; + } + pub mod stress { + pub use super::super::stress::async_::*; + pub use super::super::stress::*; + } + pub mod syntax { + pub use super::super::syntax::async_::*; + pub use super::super::syntax::*; + } +}