diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-07-02 19:59:52 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-07-02 20:07:43 +0200 |
| commit | ebfdb1dafa430786db10dad2ef7d5467c1bdbed1 (patch) | |
| tree | 2bbc24ddb4124c4bb14dec0e536129d4de37b056 /macros/src/lib.rs | |
| parent | 3ab19185093d7709f824b95b979060ce125389d8 (diff) | |
Move everything into `crates/` directory
Diffstat (limited to 'macros/src/lib.rs')
| -rw-r--r-- | macros/src/lib.rs | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/macros/src/lib.rs b/macros/src/lib.rs deleted file mode 100644 index 49840ef2..00000000 --- a/macros/src/lib.rs +++ /dev/null @@ -1,63 +0,0 @@ -//! Procedural macros for Typst. - -extern crate proc_macro; - -#[macro_use] -mod util; -mod castable; -mod element; -mod func; -mod symbols; - -use proc_macro::TokenStream as BoundaryStream; -use proc_macro2::TokenStream; -use quote::quote; -use syn::ext::IdentExt; -use syn::parse::{Parse, ParseStream, Parser}; -use syn::punctuated::Punctuated; -use syn::{parse_quote, DeriveInput, Ident, Result, Token}; - -use self::util::*; - -/// Turns a function into a `NativeFunc`. -#[proc_macro_attribute] -pub fn func(stream: BoundaryStream, item: BoundaryStream) -> BoundaryStream { - let item = syn::parse_macro_input!(item as syn::ItemFn); - func::func(stream.into(), &item) - .unwrap_or_else(|err| err.to_compile_error()) - .into() -} - -/// Turns a type into an `Element`. -#[proc_macro_attribute] -pub fn element(stream: BoundaryStream, item: BoundaryStream) -> BoundaryStream { - let item = syn::parse_macro_input!(item as syn::ItemStruct); - element::element(stream.into(), &item) - .unwrap_or_else(|err| err.to_compile_error()) - .into() -} - -/// Implements `Reflect`, `FromValue`, and `IntoValue` for an enum. -#[proc_macro_derive(Cast, attributes(string))] -pub fn derive_cast(item: BoundaryStream) -> BoundaryStream { - let item = syn::parse_macro_input!(item as DeriveInput); - castable::derive_cast(&item) - .unwrap_or_else(|err| err.to_compile_error()) - .into() -} - -/// Implements `Reflect`, `FromValue`, and `IntoValue` for a type. -#[proc_macro] -pub fn cast(stream: BoundaryStream) -> BoundaryStream { - castable::cast(stream.into()) - .unwrap_or_else(|err| err.to_compile_error()) - .into() -} - -/// Defines a list of `Symbol`s. -#[proc_macro] -pub fn symbols(stream: BoundaryStream) -> BoundaryStream { - symbols::symbols(stream.into()) - .unwrap_or_else(|err| err.to_compile_error()) - .into() -} |
