Skip to main content

spacetimedsl_derive_input/api/dsl/
method.rs

1use proc_macro2::TokenStream;
2use syn::{Ident, Path};
3
4#[derive(Clone)]
5pub struct SpacetimeDSLMethod {
6    pub doc_comment: String,
7    pub trait_name: Ident,
8    pub additional_paths_to_use: Vec<Path>,
9    pub method_name: Ident,
10    pub method_args: Vec<SpacetimeDSLArg>,
11    pub return_type: TokenStream,
12    pub method_impl: TokenStream,
13    pub read_context_compatible: bool,
14}
15
16#[derive(Clone)]
17pub struct SpacetimeDSLArg {
18    pub is_option: bool,
19    pub arg_name: Ident,
20    pub arg_type: SpacetimeDSLArgType,
21}
22
23#[derive(Clone)]
24pub enum SpacetimeDSLArgType {
25    Normal(TokenStream),
26    Wrapped {
27        wrapped_type: TokenStream,
28        actual_type: TokenStream,
29    },
30}