diff --git a/crates/cgp-error/src/traits/has_error_type.rs b/crates/cgp-error/src/traits/has_error_type.rs index 4306040d..32e8fe11 100644 --- a/crates/cgp-error/src/traits/has_error_type.rs +++ b/crates/cgp-error/src/traits/has_error_type.rs @@ -27,3 +27,5 @@ use cgp_type::{TypeProvider, UseType}; pub trait HasErrorType { type Error: Debug; } + +pub type ErrorOf = ::Error; diff --git a/crates/cgp-macro-lib/src/entrypoints/cgp_type.rs b/crates/cgp-macro-lib/src/entrypoints/cgp_type.rs index 8fbec5c0..ac0166ed 100644 --- a/crates/cgp-macro-lib/src/entrypoints/cgp_type.rs +++ b/crates/cgp-macro-lib/src/entrypoints/cgp_type.rs @@ -2,14 +2,12 @@ use alloc::format; use std::collections::BTreeMap; use proc_macro2::TokenStream; -use quote::{ToTokens, TokenStreamExt, quote}; +use quote::{ToTokens, quote}; use syn::{Ident, ItemTrait, parse_quote, parse2}; use crate::derive_component::derive_component_with_ast; use crate::parse::{ComponentSpec, Entries}; -use crate::type_component::{ - derive_type_alias, derive_type_providers, extract_item_type_from_trait, -}; +use crate::type_component::{derive_type_providers, extract_item_type_from_trait}; pub fn cgp_type(attrs: TokenStream, body: TokenStream) -> syn::Result { let mut entries = if let Ok(provider_ident) = parse2::(attrs.clone()) { @@ -34,17 +32,13 @@ pub fn cgp_type(attrs: TokenStream, body: TokenStream) -> syn::Result syn::Result<& } } -pub fn derive_type_alias( - consumer_trait: &ItemTrait, - context_name: &Ident, - item_type: &TraitItemType, -) -> syn::Result { - let consumer_trait_name = &consumer_trait.ident; - - let (_, type_generics, _) = consumer_trait.generics.split_for_impl(); - - let type_generics: Generics = parse2(type_generics.to_token_stream())?; - - let type_generics_params = &type_generics.params; - - let type_name = &item_type.ident; - let alias_name = Ident::new(&format!("{type_name}Of"), type_name.span()); - - let alias_type: ItemType = parse2(quote! { - pub type #alias_name < #context_name, #type_generics_params > = - < #context_name as #consumer_trait_name #type_generics > :: #type_name ; - })?; - - Ok(alias_type) -} - pub fn derive_type_providers( spec: &ComponentSpec, provider_trait: &ItemTrait, diff --git a/crates/cgp-runtime/src/traits/has_runtime_type.rs b/crates/cgp-runtime/src/traits/has_runtime_type.rs index cf7e1e0a..10cd1fc0 100644 --- a/crates/cgp-runtime/src/traits/has_runtime_type.rs +++ b/crates/cgp-runtime/src/traits/has_runtime_type.rs @@ -4,3 +4,5 @@ use cgp_core::prelude::*; pub trait HasRuntimeType { type Runtime; } + +pub type RuntimeOf = ::Runtime;