style: Add support for deriving ToShmem.

Differential Revision: https://phabricator.services.mozilla.com/D17189
This commit is contained in:
Cameron McCormack 2019-03-30 00:16:08 +00:00 committed by Emilio Cobos Álvarez
parent d8a758272e
commit f6ef35c5d3
5 changed files with 121 additions and 0 deletions

View file

@ -0,0 +1,26 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
#![recursion_limit = "128"]
#[macro_use]
extern crate darling;
extern crate derive_common;
extern crate proc_macro;
extern crate proc_macro2;
#[macro_use]
extern crate quote;
#[macro_use]
extern crate syn;
extern crate synstructure;
use proc_macro::TokenStream;
mod to_shmem;
#[proc_macro_derive(ToShmem, attributes(shmem))]
pub fn derive_to_shmem(stream: TokenStream) -> TokenStream {
let input = syn::parse(stream).unwrap();
to_shmem::derive(input).into()
}