From 847a5efb1929c1a9b73e6d64103b1c30733ab134 Mon Sep 17 00:00:00 2001 From: Ahmed Sagdati Date: Fri, 3 Feb 2023 22:09:45 +0100 Subject: [PATCH 1/3] fuels-code-gen extracted, code compiling tests passing --- Cargo.toml | 4 +++- packages/fuels-code-gen/Cargo.toml | 21 +++++++++++++++++++ .../src/error.rs | 9 ++++---- packages/fuels-code-gen/src/lib.rs | 5 +++++ .../fuels-code-gen/src/program_bindings.rs | 9 ++++++++ .../src/program_bindings}/abi_types.rs | 0 .../src/program_bindings}/abigen.rs | 6 +++--- .../program_bindings}/abigen/abigen_target.rs | 2 +- .../src/program_bindings}/abigen/bindings.rs | 4 ++-- .../abigen/bindings/contract.rs | 6 +++--- .../abigen/bindings/function_generator.rs | 4 ++-- .../abigen/bindings/predicate.rs | 6 +++--- .../abigen/bindings/script.rs | 6 +++--- .../abigen/bindings/utils.rs | 4 ++-- .../src/program_bindings}/abigen/logs.rs | 2 +- .../src/program_bindings/code_gen.rs | 1 + .../src/program_bindings}/custom_types.rs | 7 ++++--- .../program_bindings}/custom_types/enums.rs | 6 +++--- .../program_bindings}/custom_types/structs.rs | 6 +++--- .../program_bindings}/custom_types/utils.rs | 4 ++-- .../src/program_bindings}/generated_code.rs | 3 +-- .../src/program_bindings}/resolved_type.rs | 6 +++--- .../src/program_bindings}/source.rs | 0 .../src/program_bindings}/utils.rs | 6 +++--- packages/fuels-code-gen/src/utils.rs | 4 ++++ packages/fuels-code-gen/src/utils/ident.rs | 10 +++++++++ .../src/utils}/type_path.rs | 2 +- packages/fuels-macros/Cargo.toml | 1 + packages/fuels-macros/src/abigen.rs | 6 ++---- packages/fuels-macros/src/abigen/code_gen.rs | 13 ------------ packages/fuels-macros/src/abigen/parsing.rs | 7 +++---- packages/fuels-macros/src/derive/utils.rs | 3 +-- packages/fuels-macros/src/lib.rs | 5 +++-- .../src/parse_utils/unique_name_values.rs | 6 ++---- .../src/setup_contract_test/code_gen.rs | 10 ++++----- packages/fuels-macros/src/utils.rs | 9 -------- 36 files changed, 114 insertions(+), 89 deletions(-) create mode 100644 packages/fuels-code-gen/Cargo.toml rename packages/{fuels-macros => fuels-code-gen}/src/error.rs (79%) create mode 100644 packages/fuels-code-gen/src/lib.rs create mode 100644 packages/fuels-code-gen/src/program_bindings.rs rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abi_types.rs (100%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen.rs (97%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen/abigen_target.rs (94%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen/bindings.rs (97%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen/bindings/contract.rs (99%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen/bindings/function_generator.rs (99%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen/bindings/predicate.rs (98%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen/bindings/script.rs (97%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen/bindings/utils.rs (94%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/abigen/logs.rs (98%) create mode 100644 packages/fuels-code-gen/src/program_bindings/code_gen.rs rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/custom_types.rs (99%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/custom_types/enums.rs (97%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/custom_types/structs.rs (97%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/custom_types/utils.rs (97%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/generated_code.rs (98%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/resolved_type.rs (99%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/source.rs (100%) rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/program_bindings}/utils.rs (97%) create mode 100644 packages/fuels-code-gen/src/utils.rs create mode 100644 packages/fuels-code-gen/src/utils/ident.rs rename packages/{fuels-macros/src/abigen/code_gen => fuels-code-gen/src/utils}/type_path.rs (99%) delete mode 100644 packages/fuels-macros/src/abigen/code_gen.rs diff --git a/Cargo.toml b/Cargo.toml index e315d5d95..b4006f654 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,9 +16,10 @@ members = [ "examples/types", "examples/wallets", "packages/fuels", + "packages/fuels-code-gen", + "packages/fuels-core", "packages/fuels-macros", "packages/fuels-programs", - "packages/fuels-core", "packages/fuels-signers", "packages/fuels-test-helpers", "packages/fuels-types", @@ -49,6 +50,7 @@ fuel-core-chain-config = "0.16" fuel-core-types = "0.16" fuel-vm = "0.25" fuels = { version = "0.35.0", path = "./packages/fuels" } +fuels-code-gen = { version = "0.35.0", path = "./packages/fuels-code-gen" } fuels-core = { version = "0.35.0", path = "./packages/fuels-core" } fuels-macros = { version = "0.35.0", path = "./packages/fuels-macros" } fuels-programs = { version = "0.35.0", path = "./packages/fuels-programs" } diff --git a/packages/fuels-code-gen/Cargo.toml b/packages/fuels-code-gen/Cargo.toml new file mode 100644 index 000000000..cc5c8fdb0 --- /dev/null +++ b/packages/fuels-code-gen/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "fuels-code-gen" +version = { workspace = true } +authors = { workspace = true } +edition = { workspace = true } +homepage = { workspace = true } +license = { workspace = true } +repository = { workspace = true } +rust-version = { workspace = true } +description = "Used for code generation in the Fuel Rust SDK" + +[dependencies] +Inflector = "0.11.4" +fuel-abi-types = "0.2.0" +itertools = "0.10.5" +proc-macro2 = "1.0.50" +quote = "1.0.23" +serde_json = "1.0.91" +lazy_static = "1.4.0" +regex = "1.7.1" +syn = { version = "1.0.107" } diff --git a/packages/fuels-macros/src/error.rs b/packages/fuels-code-gen/src/error.rs similarity index 79% rename from packages/fuels-macros/src/error.rs rename to packages/fuels-code-gen/src/error.rs index 0d5091c04..d3d2a6147 100644 --- a/packages/fuels-macros/src/error.rs +++ b/packages/fuels-code-gen/src/error.rs @@ -3,7 +3,7 @@ use std::{ io, }; -pub(crate) struct Error(pub(crate) String); +pub struct Error(pub(crate) String); impl Error { pub(crate) fn combine>(self, err: T) -> Self { @@ -11,13 +11,14 @@ impl Error { } } +#[macro_export] macro_rules! error { - ($fmt_str: literal $(,$arg: expr)*) => {crate::error::Error(format!($fmt_str,$($arg),*))} + ($fmt_str: literal $(,$arg: expr)*) => {$crate::error::Error(format!($fmt_str,$($arg),*))} } -pub(crate) use error; +pub use error; -pub(crate) type Result = std::result::Result; +pub type Result = std::result::Result; impl Debug for Error { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { diff --git a/packages/fuels-code-gen/src/lib.rs b/packages/fuels-code-gen/src/lib.rs new file mode 100644 index 000000000..4b681f69c --- /dev/null +++ b/packages/fuels-code-gen/src/lib.rs @@ -0,0 +1,5 @@ +mod error; +mod program_bindings; +pub mod utils; + +pub use program_bindings::*; diff --git a/packages/fuels-code-gen/src/program_bindings.rs b/packages/fuels-code-gen/src/program_bindings.rs new file mode 100644 index 000000000..2ef8c6932 --- /dev/null +++ b/packages/fuels-code-gen/src/program_bindings.rs @@ -0,0 +1,9 @@ +mod abi_types; +mod abigen; +mod custom_types; +mod generated_code; +mod resolved_type; +mod source; +mod utils; + +pub use abigen::{Abigen, AbigenTarget, ProgramType}; diff --git a/packages/fuels-macros/src/abigen/code_gen/abi_types.rs b/packages/fuels-code-gen/src/program_bindings/abi_types.rs similarity index 100% rename from packages/fuels-macros/src/abigen/code_gen/abi_types.rs rename to packages/fuels-code-gen/src/program_bindings/abi_types.rs diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen.rs b/packages/fuels-code-gen/src/program_bindings/abigen.rs similarity index 97% rename from packages/fuels-macros/src/abigen/code_gen/abigen.rs rename to packages/fuels-code-gen/src/program_bindings/abigen.rs index 7de42cbcd..656eb24f6 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen.rs @@ -1,5 +1,6 @@ use std::collections::HashSet; +use crate::error::Result; pub use abigen_target::{AbigenTarget, ProgramType}; use inflector::Inflector; use itertools::Itertools; @@ -7,13 +8,12 @@ use proc_macro2::TokenStream; use quote::quote; use crate::{ - abigen::code_gen::{ + program_bindings::{ abi_types::FullTypeDeclaration, abigen::{abigen_target::ParsedAbigenTarget, bindings::generate_bindings}, custom_types::generate_types, generated_code::GeneratedCode, }, - error::Result, utils::ident, }; @@ -32,7 +32,7 @@ impl Abigen { /// * `targets`: `AbigenTargets` detailing which ABI to generate bindings /// for, and of what nature (Contract, Script or Predicate). /// * `no_std`: don't use the Rust std library. - pub(crate) fn generate(targets: Vec, no_std: bool) -> Result { + pub fn generate(targets: Vec, no_std: bool) -> Result { let parsed_targets = Self::parse_targets(targets)?; let generated_code = Self::generate_code(no_std, parsed_targets)?; diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen/abigen_target.rs b/packages/fuels-code-gen/src/program_bindings/abigen/abigen_target.rs similarity index 94% rename from packages/fuels-macros/src/abigen/code_gen/abigen/abigen_target.rs rename to packages/fuels-code-gen/src/program_bindings/abigen/abigen_target.rs index 8a1ae5fab..31a9456a1 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen/abigen_target.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/abigen_target.rs @@ -1,8 +1,8 @@ use std::convert::TryFrom; use crate::{ - abigen::code_gen::{abi_types::FullProgramABI, source::Source}, error::{Error, Result}, + program_bindings::{abi_types::FullProgramABI, source::Source}, }; #[derive(Debug, Clone)] diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings.rs similarity index 97% rename from packages/fuels-macros/src/abigen/code_gen/abigen/bindings.rs rename to packages/fuels-code-gen/src/program_bindings/abigen/bindings.rs index 5658297c6..880cb8c41 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings.rs @@ -1,7 +1,8 @@ use std::collections::HashSet; use crate::{ - abigen::code_gen::{ + error::Result, + program_bindings::{ abi_types::FullTypeDeclaration, abigen::{ abigen_target::ParsedAbigenTarget, @@ -12,7 +13,6 @@ use crate::{ }, generated_code::GeneratedCode, }, - error::Result, utils::ident, }; diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/contract.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/contract.rs similarity index 99% rename from packages/fuels-macros/src/abigen/code_gen/abigen/bindings/contract.rs rename to packages/fuels-code-gen/src/program_bindings/abigen/bindings/contract.rs index aca4cc0bd..8004d22bc 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/contract.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/contract.rs @@ -4,16 +4,16 @@ use itertools::Itertools; use proc_macro2::{Ident, TokenStream}; use quote::{quote, TokenStreamExt}; +use crate::utils::type_path::TypePath; use crate::{ - abigen::code_gen::{ + error::Result, + program_bindings::{ abi_types::{FullABIFunction, FullProgramABI, FullTypeDeclaration}, abigen::{ bindings::function_generator::FunctionGenerator, logs::logs_lookup_instantiation_code, }, generated_code::GeneratedCode, - type_path::TypePath, }, - error::Result, utils::ident, }; diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/function_generator.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/function_generator.rs similarity index 99% rename from packages/fuels-macros/src/abigen/code_gen/abigen/bindings/function_generator.rs rename to packages/fuels-code-gen/src/program_bindings/abigen/bindings/function_generator.rs index a6d27cf9b..02bda6fc8 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/function_generator.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/function_generator.rs @@ -4,12 +4,12 @@ use proc_macro2::TokenStream; use quote::{quote, ToTokens}; use crate::{ - abigen::code_gen::{ + error::{error, Result}, + program_bindings::{ abi_types::{FullABIFunction, FullTypeApplication, FullTypeDeclaration}, resolved_type::{resolve_type, ResolvedType}, utils::{param_type_calls, Component}, }, - error::{error, Result}, utils::safe_ident, }; diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/predicate.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/predicate.rs similarity index 98% rename from packages/fuels-macros/src/abigen/code_gen/abigen/bindings/predicate.rs rename to packages/fuels-code-gen/src/program_bindings/abigen/bindings/predicate.rs index df04118d5..86f205403 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/predicate.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/predicate.rs @@ -3,14 +3,14 @@ use std::collections::HashSet; use proc_macro2::{Ident, TokenStream}; use quote::quote; +use crate::utils::type_path::TypePath; use crate::{ - abigen::code_gen::{ + error::Result, + program_bindings::{ abi_types::{FullProgramABI, FullTypeDeclaration}, abigen::bindings::{function_generator::FunctionGenerator, utils::extract_main_fn}, generated_code::GeneratedCode, - type_path::TypePath, }, - error::Result, }; pub(crate) fn predicate_bindings( diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/script.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/script.rs similarity index 97% rename from packages/fuels-macros/src/abigen/code_gen/abigen/bindings/script.rs rename to packages/fuels-code-gen/src/program_bindings/abigen/bindings/script.rs index dd8609cda..5f01569c2 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/script.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/script.rs @@ -3,17 +3,17 @@ use std::collections::HashSet; use proc_macro2::{Ident, TokenStream}; use quote::quote; +use crate::utils::type_path::TypePath; use crate::{ - abigen::code_gen::{ + error::Result, + program_bindings::{ abi_types::{FullProgramABI, FullTypeDeclaration}, abigen::{ bindings::{function_generator::FunctionGenerator, utils::extract_main_fn}, logs::logs_lookup_instantiation_code, }, generated_code::GeneratedCode, - type_path::TypePath, }, - error::Result, }; pub(crate) fn script_bindings( diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/utils.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/utils.rs similarity index 94% rename from packages/fuels-macros/src/abigen/code_gen/abigen/bindings/utils.rs rename to packages/fuels-code-gen/src/program_bindings/abigen/bindings/utils.rs index 5f95344a0..2649fcbe4 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen/bindings/utils.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/utils.rs @@ -1,6 +1,6 @@ use crate::{ - abigen::code_gen::abi_types::FullABIFunction, error::{error, Result}, + program_bindings::abi_types::FullABIFunction, }; pub(crate) fn extract_main_fn(abi: &[FullABIFunction]) -> Result<&FullABIFunction> { @@ -26,7 +26,7 @@ pub(crate) fn extract_main_fn(abi: &[FullABIFunction]) -> Result<&FullABIFunctio #[cfg(test)] mod tests { use super::*; - use crate::abigen::code_gen::abi_types::{FullTypeApplication, FullTypeDeclaration}; + use crate::program_bindings::abi_types::{FullTypeApplication, FullTypeDeclaration}; #[test] fn correctly_extracts_the_main_fn() { diff --git a/packages/fuels-macros/src/abigen/code_gen/abigen/logs.rs b/packages/fuels-code-gen/src/program_bindings/abigen/logs.rs similarity index 98% rename from packages/fuels-macros/src/abigen/code_gen/abigen/logs.rs rename to packages/fuels-code-gen/src/program_bindings/abigen/logs.rs index 7446c37ce..3d3123c02 100644 --- a/packages/fuels-macros/src/abigen/code_gen/abigen/logs.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/logs.rs @@ -3,7 +3,7 @@ use std::collections::HashSet; use proc_macro2::TokenStream; use quote::quote; -use crate::abigen::code_gen::{ +use crate::program_bindings::{ abi_types::{FullLoggedType, FullTypeDeclaration}, resolved_type::resolve_type, utils::single_param_type_call, diff --git a/packages/fuels-code-gen/src/program_bindings/code_gen.rs b/packages/fuels-code-gen/src/program_bindings/code_gen.rs new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/packages/fuels-code-gen/src/program_bindings/code_gen.rs @@ -0,0 +1 @@ + diff --git a/packages/fuels-macros/src/abigen/code_gen/custom_types.rs b/packages/fuels-code-gen/src/program_bindings/custom_types.rs similarity index 99% rename from packages/fuels-macros/src/abigen/code_gen/custom_types.rs rename to packages/fuels-code-gen/src/program_bindings/custom_types.rs index 20b268c63..2c59949d1 100644 --- a/packages/fuels-macros/src/abigen/code_gen/custom_types.rs +++ b/packages/fuels-code-gen/src/program_bindings/custom_types.rs @@ -4,13 +4,13 @@ use fuel_abi_types::utils::extract_custom_type_name; use itertools::Itertools; use crate::{ - abigen::code_gen::{ + error::Result, + program_bindings::{ abi_types::FullTypeDeclaration, custom_types::{enums::expand_custom_enum, structs::expand_custom_struct}, generated_code::GeneratedCode, utils::get_sdk_provided_types, }, - error::Result, }; mod enums; @@ -87,7 +87,8 @@ mod tests { use quote::quote; use super::*; - use crate::abigen::code_gen::{abi_types::FullTypeApplication, type_path::TypePath}; + use crate::program_bindings::abi_types::FullTypeApplication; + use crate::utils::type_path::TypePath; #[test] fn test_expand_custom_enum() -> Result<()> { diff --git a/packages/fuels-macros/src/abigen/code_gen/custom_types/enums.rs b/packages/fuels-code-gen/src/program_bindings/custom_types/enums.rs similarity index 97% rename from packages/fuels-macros/src/abigen/code_gen/custom_types/enums.rs rename to packages/fuels-code-gen/src/program_bindings/custom_types/enums.rs index eb135dd70..58dc959a1 100644 --- a/packages/fuels-macros/src/abigen/code_gen/custom_types/enums.rs +++ b/packages/fuels-code-gen/src/program_bindings/custom_types/enums.rs @@ -4,15 +4,15 @@ use fuel_abi_types::utils::extract_custom_type_name; use proc_macro2::{Ident, TokenStream}; use quote::quote; +use crate::utils::type_path::TypePath; use crate::{ - abigen::code_gen::{ + error::{error, Result}, + program_bindings::{ abi_types::FullTypeDeclaration, custom_types::utils::{extract_components, extract_generic_parameters}, generated_code::GeneratedCode, - type_path::TypePath, utils::Component, }, - error::{error, Result}, utils::ident, }; diff --git a/packages/fuels-macros/src/abigen/code_gen/custom_types/structs.rs b/packages/fuels-code-gen/src/program_bindings/custom_types/structs.rs similarity index 97% rename from packages/fuels-macros/src/abigen/code_gen/custom_types/structs.rs rename to packages/fuels-code-gen/src/program_bindings/custom_types/structs.rs index 6e7682669..91414025b 100644 --- a/packages/fuels-macros/src/abigen/code_gen/custom_types/structs.rs +++ b/packages/fuels-code-gen/src/program_bindings/custom_types/structs.rs @@ -4,15 +4,15 @@ use fuel_abi_types::utils::extract_custom_type_name; use proc_macro2::{Ident, TokenStream}; use quote::quote; +use crate::utils::type_path::TypePath; use crate::{ - abigen::code_gen::{ + error::{error, Result}, + program_bindings::{ abi_types::FullTypeDeclaration, custom_types::utils::{extract_components, extract_generic_parameters}, generated_code::GeneratedCode, - type_path::TypePath, utils::Component, }, - error::{error, Result}, utils::ident, }; diff --git a/packages/fuels-macros/src/abigen/code_gen/custom_types/utils.rs b/packages/fuels-code-gen/src/program_bindings/custom_types/utils.rs similarity index 97% rename from packages/fuels-macros/src/abigen/code_gen/custom_types/utils.rs rename to packages/fuels-code-gen/src/program_bindings/custom_types/utils.rs index 718159d4f..cd7bf9061 100644 --- a/packages/fuels-macros/src/abigen/code_gen/custom_types/utils.rs +++ b/packages/fuels-code-gen/src/program_bindings/custom_types/utils.rs @@ -5,8 +5,8 @@ use proc_macro2::TokenStream; use quote::quote; use crate::{ - abigen::code_gen::{abi_types::FullTypeDeclaration, utils::Component}, error::Result, + program_bindings::{abi_types::FullTypeDeclaration, utils::Component}, utils::ident, }; @@ -47,7 +47,7 @@ mod tests { use fuel_abi_types::{program_abi::TypeDeclaration, utils::extract_custom_type_name}; use super::*; - use crate::abigen::code_gen::{resolved_type::ResolvedType, utils::param_type_calls}; + use crate::program_bindings::{resolved_type::ResolvedType, utils::param_type_calls}; #[test] fn extracts_generic_types() -> Result<()> { diff --git a/packages/fuels-macros/src/abigen/code_gen/generated_code.rs b/packages/fuels-code-gen/src/program_bindings/generated_code.rs similarity index 98% rename from packages/fuels-macros/src/abigen/code_gen/generated_code.rs rename to packages/fuels-code-gen/src/program_bindings/generated_code.rs index 2142dd0d9..5dfcea719 100644 --- a/packages/fuels-macros/src/abigen/code_gen/generated_code.rs +++ b/packages/fuels-code-gen/src/program_bindings/generated_code.rs @@ -1,11 +1,10 @@ use std::collections::HashSet; +use crate::utils::type_path::TypePath; use itertools::Itertools; use proc_macro2::{Ident, TokenStream}; use quote::quote; -use crate::abigen::code_gen::type_path::TypePath; - #[derive(Default, Debug)] pub(crate) struct GeneratedCode { pub code: TokenStream, diff --git a/packages/fuels-macros/src/abigen/code_gen/resolved_type.rs b/packages/fuels-code-gen/src/program_bindings/resolved_type.rs similarity index 99% rename from packages/fuels-macros/src/abigen/code_gen/resolved_type.rs rename to packages/fuels-code-gen/src/program_bindings/resolved_type.rs index c2b602aaa..0a10ee2b4 100644 --- a/packages/fuels-macros/src/abigen/code_gen/resolved_type.rs +++ b/packages/fuels-code-gen/src/program_bindings/resolved_type.rs @@ -12,13 +12,13 @@ use proc_macro2::TokenStream; use quote::{quote, ToTokens}; use regex::Regex; +use crate::utils::type_path::TypePath; use crate::{ - abigen::code_gen::{ + error::{error, Result}, + program_bindings::{ abi_types::{FullTypeApplication, FullTypeDeclaration}, - type_path::TypePath, utils::get_sdk_provided_types, }, - error::{error, Result}, utils::{ident, safe_ident}, }; diff --git a/packages/fuels-macros/src/abigen/code_gen/source.rs b/packages/fuels-code-gen/src/program_bindings/source.rs similarity index 100% rename from packages/fuels-macros/src/abigen/code_gen/source.rs rename to packages/fuels-code-gen/src/program_bindings/source.rs diff --git a/packages/fuels-macros/src/abigen/code_gen/utils.rs b/packages/fuels-code-gen/src/program_bindings/utils.rs similarity index 97% rename from packages/fuels-macros/src/abigen/code_gen/utils.rs rename to packages/fuels-code-gen/src/program_bindings/utils.rs index 3ec9685f9..35d6eb133 100644 --- a/packages/fuels-macros/src/abigen/code_gen/utils.rs +++ b/packages/fuels-code-gen/src/program_bindings/utils.rs @@ -4,13 +4,13 @@ use inflector::Inflector; use proc_macro2::{Ident, TokenStream}; use quote::{quote, ToTokens}; +use crate::error::Result; +use crate::utils::type_path::TypePath; use crate::{ - abigen::code_gen::{ + program_bindings::{ abi_types::{FullTypeApplication, FullTypeDeclaration}, resolved_type::{resolve_type, ResolvedType}, - type_path::TypePath, }, - error::Result, utils::safe_ident, }; diff --git a/packages/fuels-code-gen/src/utils.rs b/packages/fuels-code-gen/src/utils.rs new file mode 100644 index 000000000..f9aad6e4e --- /dev/null +++ b/packages/fuels-code-gen/src/utils.rs @@ -0,0 +1,4 @@ +mod ident; +pub mod type_path; + +pub use ident::*; diff --git a/packages/fuels-code-gen/src/utils/ident.rs b/packages/fuels-code-gen/src/utils/ident.rs new file mode 100644 index 000000000..9ac73eadf --- /dev/null +++ b/packages/fuels-code-gen/src/utils/ident.rs @@ -0,0 +1,10 @@ +use proc_macro2::{Ident, Span}; + +/// Expands a identifier string into an token. +pub fn ident(name: &str) -> Ident { + Ident::new(name, Span::call_site()) +} + +pub fn safe_ident(name: &str) -> Ident { + syn::parse_str::(name).unwrap_or_else(|_| ident(&format!("{name}_"))) +} diff --git a/packages/fuels-macros/src/abigen/code_gen/type_path.rs b/packages/fuels-code-gen/src/utils/type_path.rs similarity index 99% rename from packages/fuels-macros/src/abigen/code_gen/type_path.rs rename to packages/fuels-code-gen/src/utils/type_path.rs index 5eb841a55..5b2babdc7 100644 --- a/packages/fuels-macros/src/abigen/code_gen/type_path.rs +++ b/packages/fuels-code-gen/src/utils/type_path.rs @@ -6,7 +6,7 @@ use quote::{quote, ToTokens}; use crate::error::{error, Result}; #[derive(Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)] -pub(crate) struct TypePath { +pub struct TypePath { parts: Vec, } diff --git a/packages/fuels-macros/Cargo.toml b/packages/fuels-macros/Cargo.toml index 8cbc3d016..357fb4c4d 100644 --- a/packages/fuels-macros/Cargo.toml +++ b/packages/fuels-macros/Cargo.toml @@ -23,6 +23,7 @@ rand = "0.8" syn = { version = "1.0.107", features = ["extra-traits"] } itertools = "0.10.5" serde_json = "1.0.91" +fuels-code-gen = { workspace = true } [dev-dependencies] trybuild = "1.0.73" diff --git a/packages/fuels-macros/src/abigen.rs b/packages/fuels-macros/src/abigen.rs index c7da5e650..2ce2e18dd 100644 --- a/packages/fuels-macros/src/abigen.rs +++ b/packages/fuels-macros/src/abigen.rs @@ -1,5 +1,3 @@ -mod code_gen; -mod parsing; - -pub(crate) use code_gen::{Abigen, AbigenTarget, ProgramType, TypePath}; pub(crate) use parsing::MacroAbigenTargets; + +mod parsing; diff --git a/packages/fuels-macros/src/abigen/code_gen.rs b/packages/fuels-macros/src/abigen/code_gen.rs deleted file mode 100644 index f596128d9..000000000 --- a/packages/fuels-macros/src/abigen/code_gen.rs +++ /dev/null @@ -1,13 +0,0 @@ -//! This module implements everything related to code generation/expansion -//! from a FuelVM ABI. -mod abi_types; -mod abigen; -mod custom_types; -mod generated_code; -mod resolved_type; -mod source; -mod type_path; -mod utils; - -pub(crate) use abigen::{Abigen, AbigenTarget, ProgramType}; -pub(crate) use type_path::TypePath; diff --git a/packages/fuels-macros/src/abigen/parsing.rs b/packages/fuels-macros/src/abigen/parsing.rs index 4503741b1..ff4f0c991 100644 --- a/packages/fuels-macros/src/abigen/parsing.rs +++ b/packages/fuels-macros/src/abigen/parsing.rs @@ -4,10 +4,9 @@ use syn::{ Error, Result as ParseResult, }; -use crate::{ - abigen::{AbigenTarget, ProgramType}, - parse_utils::{Command, UniqueNameValues}, -}; +use fuels_code_gen::{AbigenTarget, ProgramType}; + +use crate::parse_utils::{Command, UniqueNameValues}; impl From for Vec { fn from(targets: MacroAbigenTargets) -> Self { diff --git a/packages/fuels-macros/src/derive/utils.rs b/packages/fuels-macros/src/derive/utils.rs index 29be3a349..527c83ac6 100644 --- a/packages/fuels-macros/src/derive/utils.rs +++ b/packages/fuels-macros/src/derive/utils.rs @@ -1,11 +1,10 @@ +use fuels_code_gen::utils::type_path::TypePath; use proc_macro2::{Ident, TokenStream}; use quote::{quote, ToTokens}; use syn::{ parenthesized, parse::ParseStream, Attribute, Error, Fields, LitStr, Result, Type, Variant, }; -use crate::abigen::TypePath; - pub(crate) fn determine_fuels_types_path(attrs: &[Attribute]) -> Result { let attr_tokens = if let Some(attr) = find_attr("FuelsTypesPath", attrs) { attr.tokens.clone() diff --git a/packages/fuels-macros/src/lib.rs b/packages/fuels-macros/src/lib.rs index 573735602..0e85b3fd7 100644 --- a/packages/fuels-macros/src/lib.rs +++ b/packages/fuels-macros/src/lib.rs @@ -1,8 +1,10 @@ use proc_macro::TokenStream; + +use fuels_code_gen::Abigen; use syn::{parse_macro_input, DeriveInput}; use crate::{ - abigen::{Abigen, MacroAbigenTargets}, + abigen::MacroAbigenTargets, derive::{ parameterize::generate_parameterize_impl, tokenizable::generate_tokenizable_impl, try_from::generate_try_from_impl, @@ -12,7 +14,6 @@ use crate::{ mod abigen; mod derive; -mod error; mod parse_utils; mod setup_contract_test; mod utils; diff --git a/packages/fuels-macros/src/parse_utils/unique_name_values.rs b/packages/fuels-macros/src/parse_utils/unique_name_values.rs index 14f0ddf5d..5aecc2897 100644 --- a/packages/fuels-macros/src/parse_utils/unique_name_values.rs +++ b/packages/fuels-macros/src/parse_utils/unique_name_values.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; +use fuels_code_gen::utils::ident; use itertools::{chain, Itertools}; use proc_macro2::{Ident, Span}; use quote::ToTokens; @@ -8,10 +9,7 @@ use syn::{ NestedMeta, NestedMeta::Meta, }; -use crate::{ - parse_utils::{validate_no_duplicates, ErrorsExt}, - utils::ident, -}; +use crate::parse_utils::{validate_no_duplicates, ErrorsExt}; #[derive(Debug)] pub struct UniqueNameValues { diff --git a/packages/fuels-macros/src/setup_contract_test/code_gen.rs b/packages/fuels-macros/src/setup_contract_test/code_gen.rs index ef9a80b15..7611ade60 100644 --- a/packages/fuels-macros/src/setup_contract_test/code_gen.rs +++ b/packages/fuels-macros/src/setup_contract_test/code_gen.rs @@ -3,17 +3,15 @@ use std::{ path::{Path, PathBuf}, }; +use fuels_code_gen::utils::ident; +use fuels_code_gen::{Abigen, AbigenTarget, ProgramType}; use proc_macro2::{Ident, TokenStream}; use quote::quote; use rand::{prelude::StdRng, Rng, SeedableRng}; use syn::LitStr; -use crate::{ - abigen::{Abigen, AbigenTarget, ProgramType}, - setup_contract_test::parsing::{ - DeployContract, GenerateContract, InitializeWallet, TestContractCommands, - }, - utils::ident, +use crate::setup_contract_test::parsing::{ + DeployContract, GenerateContract, InitializeWallet, TestContractCommands, }; pub(crate) fn generate_setup_contract_test_code( diff --git a/packages/fuels-macros/src/utils.rs b/packages/fuels-macros/src/utils.rs index 1a7ded241..8b1378917 100644 --- a/packages/fuels-macros/src/utils.rs +++ b/packages/fuels-macros/src/utils.rs @@ -1,10 +1 @@ -use proc_macro2::{Ident, Span}; -/// Expands a identifier string into an token. -pub(crate) fn ident(name: &str) -> Ident { - Ident::new(name, Span::call_site()) -} - -pub(crate) fn safe_ident(name: &str) -> Ident { - syn::parse_str::(name).unwrap_or_else(|_| ident(&format!("{name}_"))) -} From 1ea8dadddc34a12d29a57daa807ead4df2efa9fb Mon Sep 17 00:00:00 2001 From: Ahmed Sagdati Date: Fri, 3 Feb 2023 22:14:42 +0100 Subject: [PATCH 2/3] tweak reexporting --- packages/fuels-code-gen/src/program_bindings/abigen.rs | 2 +- .../src/program_bindings/abigen/bindings/contract.rs | 3 +-- .../src/program_bindings/abigen/bindings/predicate.rs | 2 +- .../src/program_bindings/abigen/bindings/script.rs | 2 +- .../fuels-code-gen/src/program_bindings/custom_types.rs | 3 +-- .../src/program_bindings/custom_types/enums.rs | 3 +-- .../src/program_bindings/custom_types/structs.rs | 3 +-- .../fuels-code-gen/src/program_bindings/generated_code.rs | 3 ++- .../fuels-code-gen/src/program_bindings/resolved_type.rs | 3 +-- packages/fuels-code-gen/src/program_bindings/utils.rs | 5 ++--- packages/fuels-code-gen/src/utils.rs | 7 ++++--- packages/fuels-macros/src/abigen/parsing.rs | 3 +-- packages/fuels-macros/src/derive/utils.rs | 2 +- packages/fuels-macros/src/lib.rs | 3 +-- packages/fuels-macros/src/setup_contract_test/code_gen.rs | 3 +-- packages/fuels/tests/types.rs | 3 +-- 16 files changed, 21 insertions(+), 29 deletions(-) diff --git a/packages/fuels-code-gen/src/program_bindings/abigen.rs b/packages/fuels-code-gen/src/program_bindings/abigen.rs index 656eb24f6..3fe2cebc5 100644 --- a/packages/fuels-code-gen/src/program_bindings/abigen.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen.rs @@ -1,6 +1,5 @@ use std::collections::HashSet; -use crate::error::Result; pub use abigen_target::{AbigenTarget, ProgramType}; use inflector::Inflector; use itertools::Itertools; @@ -8,6 +7,7 @@ use proc_macro2::TokenStream; use quote::quote; use crate::{ + error::Result, program_bindings::{ abi_types::FullTypeDeclaration, abigen::{abigen_target::ParsedAbigenTarget, bindings::generate_bindings}, diff --git a/packages/fuels-code-gen/src/program_bindings/abigen/bindings/contract.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/contract.rs index 8004d22bc..069c30cb8 100644 --- a/packages/fuels-code-gen/src/program_bindings/abigen/bindings/contract.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/contract.rs @@ -4,7 +4,6 @@ use itertools::Itertools; use proc_macro2::{Ident, TokenStream}; use quote::{quote, TokenStreamExt}; -use crate::utils::type_path::TypePath; use crate::{ error::Result, program_bindings::{ @@ -14,7 +13,7 @@ use crate::{ }, generated_code::GeneratedCode, }, - utils::ident, + utils::{ident, TypePath}, }; pub(crate) fn contract_bindings( diff --git a/packages/fuels-code-gen/src/program_bindings/abigen/bindings/predicate.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/predicate.rs index 86f205403..fe13c4338 100644 --- a/packages/fuels-code-gen/src/program_bindings/abigen/bindings/predicate.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/predicate.rs @@ -3,7 +3,6 @@ use std::collections::HashSet; use proc_macro2::{Ident, TokenStream}; use quote::quote; -use crate::utils::type_path::TypePath; use crate::{ error::Result, program_bindings::{ @@ -11,6 +10,7 @@ use crate::{ abigen::bindings::{function_generator::FunctionGenerator, utils::extract_main_fn}, generated_code::GeneratedCode, }, + utils::TypePath, }; pub(crate) fn predicate_bindings( diff --git a/packages/fuels-code-gen/src/program_bindings/abigen/bindings/script.rs b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/script.rs index 5f01569c2..1a553180e 100644 --- a/packages/fuels-code-gen/src/program_bindings/abigen/bindings/script.rs +++ b/packages/fuels-code-gen/src/program_bindings/abigen/bindings/script.rs @@ -3,7 +3,6 @@ use std::collections::HashSet; use proc_macro2::{Ident, TokenStream}; use quote::quote; -use crate::utils::type_path::TypePath; use crate::{ error::Result, program_bindings::{ @@ -14,6 +13,7 @@ use crate::{ }, generated_code::GeneratedCode, }, + utils::TypePath, }; pub(crate) fn script_bindings( diff --git a/packages/fuels-code-gen/src/program_bindings/custom_types.rs b/packages/fuels-code-gen/src/program_bindings/custom_types.rs index 2c59949d1..b71637060 100644 --- a/packages/fuels-code-gen/src/program_bindings/custom_types.rs +++ b/packages/fuels-code-gen/src/program_bindings/custom_types.rs @@ -87,8 +87,7 @@ mod tests { use quote::quote; use super::*; - use crate::program_bindings::abi_types::FullTypeApplication; - use crate::utils::type_path::TypePath; + use crate::{program_bindings::abi_types::FullTypeApplication, utils::TypePath}; #[test] fn test_expand_custom_enum() -> Result<()> { diff --git a/packages/fuels-code-gen/src/program_bindings/custom_types/enums.rs b/packages/fuels-code-gen/src/program_bindings/custom_types/enums.rs index 58dc959a1..e39cd4ea4 100644 --- a/packages/fuels-code-gen/src/program_bindings/custom_types/enums.rs +++ b/packages/fuels-code-gen/src/program_bindings/custom_types/enums.rs @@ -4,7 +4,6 @@ use fuel_abi_types::utils::extract_custom_type_name; use proc_macro2::{Ident, TokenStream}; use quote::quote; -use crate::utils::type_path::TypePath; use crate::{ error::{error, Result}, program_bindings::{ @@ -13,7 +12,7 @@ use crate::{ generated_code::GeneratedCode, utils::Component, }, - utils::ident, + utils::{ident, TypePath}, }; /// Returns a TokenStream containing the declaration, `Parameterize`, diff --git a/packages/fuels-code-gen/src/program_bindings/custom_types/structs.rs b/packages/fuels-code-gen/src/program_bindings/custom_types/structs.rs index 91414025b..d574ab1d6 100644 --- a/packages/fuels-code-gen/src/program_bindings/custom_types/structs.rs +++ b/packages/fuels-code-gen/src/program_bindings/custom_types/structs.rs @@ -4,7 +4,6 @@ use fuel_abi_types::utils::extract_custom_type_name; use proc_macro2::{Ident, TokenStream}; use quote::quote; -use crate::utils::type_path::TypePath; use crate::{ error::{error, Result}, program_bindings::{ @@ -13,7 +12,7 @@ use crate::{ generated_code::GeneratedCode, utils::Component, }, - utils::ident, + utils::{ident, TypePath}, }; /// Returns a TokenStream containing the declaration, `Parameterize`, diff --git a/packages/fuels-code-gen/src/program_bindings/generated_code.rs b/packages/fuels-code-gen/src/program_bindings/generated_code.rs index 5dfcea719..aa48b8cd1 100644 --- a/packages/fuels-code-gen/src/program_bindings/generated_code.rs +++ b/packages/fuels-code-gen/src/program_bindings/generated_code.rs @@ -1,10 +1,11 @@ use std::collections::HashSet; -use crate::utils::type_path::TypePath; use itertools::Itertools; use proc_macro2::{Ident, TokenStream}; use quote::quote; +use crate::utils::TypePath; + #[derive(Default, Debug)] pub(crate) struct GeneratedCode { pub code: TokenStream, diff --git a/packages/fuels-code-gen/src/program_bindings/resolved_type.rs b/packages/fuels-code-gen/src/program_bindings/resolved_type.rs index 0a10ee2b4..73300021c 100644 --- a/packages/fuels-code-gen/src/program_bindings/resolved_type.rs +++ b/packages/fuels-code-gen/src/program_bindings/resolved_type.rs @@ -12,14 +12,13 @@ use proc_macro2::TokenStream; use quote::{quote, ToTokens}; use regex::Regex; -use crate::utils::type_path::TypePath; use crate::{ error::{error, Result}, program_bindings::{ abi_types::{FullTypeApplication, FullTypeDeclaration}, utils::get_sdk_provided_types, }, - utils::{ident, safe_ident}, + utils::{ident, safe_ident, TypePath}, }; // Represents a type alongside its generic parameters. Can be converted into a diff --git a/packages/fuels-code-gen/src/program_bindings/utils.rs b/packages/fuels-code-gen/src/program_bindings/utils.rs index 35d6eb133..955324d08 100644 --- a/packages/fuels-code-gen/src/program_bindings/utils.rs +++ b/packages/fuels-code-gen/src/program_bindings/utils.rs @@ -4,14 +4,13 @@ use inflector::Inflector; use proc_macro2::{Ident, TokenStream}; use quote::{quote, ToTokens}; -use crate::error::Result; -use crate::utils::type_path::TypePath; use crate::{ + error::Result, program_bindings::{ abi_types::{FullTypeApplication, FullTypeDeclaration}, resolved_type::{resolve_type, ResolvedType}, }, - utils::safe_ident, + utils::{safe_ident, TypePath}, }; // Represents a component of either a struct(field name) or an enum(variant diff --git a/packages/fuels-code-gen/src/utils.rs b/packages/fuels-code-gen/src/utils.rs index f9aad6e4e..dbaf354c4 100644 --- a/packages/fuels-code-gen/src/utils.rs +++ b/packages/fuels-code-gen/src/utils.rs @@ -1,4 +1,5 @@ -mod ident; -pub mod type_path; +pub use ident::{ident, safe_ident}; +pub use type_path::TypePath; -pub use ident::*; +mod ident; +mod type_path; diff --git a/packages/fuels-macros/src/abigen/parsing.rs b/packages/fuels-macros/src/abigen/parsing.rs index ff4f0c991..088dddcc3 100644 --- a/packages/fuels-macros/src/abigen/parsing.rs +++ b/packages/fuels-macros/src/abigen/parsing.rs @@ -1,11 +1,10 @@ +use fuels_code_gen::{AbigenTarget, ProgramType}; use proc_macro2::Ident; use syn::{ parse::{Parse, ParseStream}, Error, Result as ParseResult, }; -use fuels_code_gen::{AbigenTarget, ProgramType}; - use crate::parse_utils::{Command, UniqueNameValues}; impl From for Vec { diff --git a/packages/fuels-macros/src/derive/utils.rs b/packages/fuels-macros/src/derive/utils.rs index 527c83ac6..ded88e2cc 100644 --- a/packages/fuels-macros/src/derive/utils.rs +++ b/packages/fuels-macros/src/derive/utils.rs @@ -1,4 +1,4 @@ -use fuels_code_gen::utils::type_path::TypePath; +use fuels_code_gen::utils::TypePath; use proc_macro2::{Ident, TokenStream}; use quote::{quote, ToTokens}; use syn::{ diff --git a/packages/fuels-macros/src/lib.rs b/packages/fuels-macros/src/lib.rs index 0e85b3fd7..b66705df4 100644 --- a/packages/fuels-macros/src/lib.rs +++ b/packages/fuels-macros/src/lib.rs @@ -1,6 +1,5 @@ -use proc_macro::TokenStream; - use fuels_code_gen::Abigen; +use proc_macro::TokenStream; use syn::{parse_macro_input, DeriveInput}; use crate::{ diff --git a/packages/fuels-macros/src/setup_contract_test/code_gen.rs b/packages/fuels-macros/src/setup_contract_test/code_gen.rs index 7611ade60..c3591265b 100644 --- a/packages/fuels-macros/src/setup_contract_test/code_gen.rs +++ b/packages/fuels-macros/src/setup_contract_test/code_gen.rs @@ -3,8 +3,7 @@ use std::{ path::{Path, PathBuf}, }; -use fuels_code_gen::utils::ident; -use fuels_code_gen::{Abigen, AbigenTarget, ProgramType}; +use fuels_code_gen::{utils::ident, Abigen, AbigenTarget, ProgramType}; use proc_macro2::{Ident, TokenStream}; use quote::quote; use rand::{prelude::StdRng, Rng, SeedableRng}; diff --git a/packages/fuels/tests/types.rs b/packages/fuels/tests/types.rs index 0060cc0f5..b267a80dc 100644 --- a/packages/fuels/tests/types.rs +++ b/packages/fuels/tests/types.rs @@ -1,5 +1,4 @@ -use std::result::Result as StdResult; -use std::str::FromStr; +use std::{result::Result as StdResult, str::FromStr}; use fuels::{ prelude::*, From f57ccb9098851e84a6abd8dc9a0749ac8d88dfb4 Mon Sep 17 00:00:00 2001 From: Ahmed Sagdati Date: Fri, 3 Feb 2023 22:37:03 +0100 Subject: [PATCH 3/3] make error public --- packages/fuels-code-gen/src/error.rs | 4 ++-- packages/fuels-code-gen/src/lib.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/fuels-code-gen/src/error.rs b/packages/fuels-code-gen/src/error.rs index d3d2a6147..924f79c9d 100644 --- a/packages/fuels-code-gen/src/error.rs +++ b/packages/fuels-code-gen/src/error.rs @@ -3,10 +3,10 @@ use std::{ io, }; -pub struct Error(pub(crate) String); +pub struct Error(pub String); impl Error { - pub(crate) fn combine>(self, err: T) -> Self { + pub fn combine>(self, err: T) -> Self { error!("{} {}", self.0, err.into().0) } } diff --git a/packages/fuels-code-gen/src/lib.rs b/packages/fuels-code-gen/src/lib.rs index 4b681f69c..3ccf6d728 100644 --- a/packages/fuels-code-gen/src/lib.rs +++ b/packages/fuels-code-gen/src/lib.rs @@ -1,5 +1,5 @@ -mod error; +pub use program_bindings::*; + +pub mod error; mod program_bindings; pub mod utils; - -pub use program_bindings::*;