spacetimedsl_derive_input/api/dsl/
method.rs1use 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}