Skip to main content

canic_dsl_macros/
lib.rs

1mod endpoint;
2
3use crate::endpoint::{EndpointKind, expand_entry};
4use canic_dsl as _;
5use proc_macro::TokenStream;
6
7/// Define a Canic query endpoint.
8///
9/// See `canic::endpoint` for supported attributes.
10#[proc_macro_attribute]
11pub fn canic_query(attr: TokenStream, item: TokenStream) -> TokenStream {
12    expand_entry(EndpointKind::Query, attr, item)
13}
14
15/// Define a Canic update endpoint.
16///
17/// See `canic::endpoint` for supported attributes.
18#[proc_macro_attribute]
19pub fn canic_update(attr: TokenStream, item: TokenStream) -> TokenStream {
20    expand_entry(EndpointKind::Update, attr, item)
21}