#[allow(unused_extern_crates)] extern crate proc_macro;
use proc_macro::TokenStream;
mod alloc_value;
mod any_lifetime;
mod attrs;
mod bc;
mod coerce;
mod freeze;
mod module;
mod serde;
mod starlark_pagable;
mod starlark_pagable_panic;
mod starlark_pagable_typetag;
mod starlark_pagable_via_pagable;
mod starlark_type_repr;
mod starlark_value;
mod trace;
mod type_matcher;
mod unpack_value;
mod util;
mod v_lifetime;
mod visit_span;
mod vtable;
#[proc_macro_attribute]
pub fn starlark_module(attr: TokenStream, input: TokenStream) -> TokenStream {
module::starlark_module(attr, input)
}
#[proc_macro_attribute]
pub fn starlark_internal_bc(
attr: proc_macro::TokenStream,
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
bc::starlark_internal_bc(attr, input)
}
#[proc_macro_attribute]
pub fn starlark_internal_vtable(
attr: proc_macro::TokenStream,
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
vtable::starlark_internal_vtable(attr, input)
}
#[proc_macro_derive(VisitSpanMut)]
pub fn derive_visit_span_mut(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
visit_span::derive_visit_span_mut(input)
}
#[proc_macro_derive(Trace, attributes(trace))]
pub fn derive_trace(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
trace::derive_trace(input)
}
#[proc_macro_derive(Freeze, attributes(freeze))]
pub fn derive_freeze(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
freeze::derive_freeze(input)
}
#[proc_macro_derive(NoSerialize)]
pub fn derive_no_serialize(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
serde::derive_no_serialize(input)
}
#[proc_macro_derive(StarlarkTypeRepr)]
pub fn derive_starlark_type_repr(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
starlark_type_repr::derive_starlark_type_repr(input)
}
#[proc_macro_derive(UnpackValue)]
pub fn derive_unpack_value(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
unpack_value::derive_unpack_value(input)
}
#[proc_macro_derive(AllocValue)]
pub fn derive_alloc_value(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
alloc_value::derive_alloc_value(input)
}
#[proc_macro_derive(AllocFrozenValue)]
pub fn derive_alloc_frozen_value(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
alloc_value::derive_alloc_frozen_value(input)
}
#[proc_macro_derive(StarlarkAttrs, attributes(starlark))]
pub fn derive_starlark_attrs(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
attrs::derive_attrs(input)
}
#[proc_macro]
pub fn starlark_attrs(_: proc_macro::TokenStream) -> proc_macro::TokenStream {
attrs::starlark_attrs()
}
#[proc_macro_attribute]
pub fn starlark_value(
attr: proc_macro::TokenStream,
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
starlark_value::derive_starlark_value(attr, input)
}
#[proc_macro_derive(ProvidesStaticType)]
pub fn derive_provides_static_type(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
any_lifetime::derive_provides_static_type(input)
}
#[proc_macro_derive(Coerce)]
pub fn derive_coerce(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
coerce::derive_coerce(input)
}
#[proc_macro_derive(StarlarkPagable, attributes(starlark_pagable))]
pub fn derive_starlark_pagable(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
starlark_pagable::derive_starlark_pagable(input)
}
#[proc_macro_derive(StarlarkPagablePanic)]
pub fn derive_starlark_pagable_panic(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
starlark_pagable_panic::derive_starlark_pagable_panic(input)
}
#[proc_macro_derive(StarlarkPagableViaPagable)]
pub fn derive_starlark_pagable_via_pagable(
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
starlark_pagable_via_pagable::derive_starlark_pagable_via_pagable(input)
}
#[proc_macro_derive(StarlarkSerialize, attributes(starlark_pagable))]
pub fn derive_starlark_serialize(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
starlark_pagable::derive_starlark_serialize(input)
}
#[proc_macro_derive(StarlarkDeserialize, attributes(starlark_pagable))]
pub fn derive_starlark_deserialize(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
starlark_pagable::derive_starlark_deserialize(input)
}
#[proc_macro_attribute]
pub fn type_matcher(
attr: proc_macro::TokenStream,
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
type_matcher::derive_type_matcher(attr, input)
}
#[proc_macro_attribute]
pub fn starlark_pagable_typetag(
attr: proc_macro::TokenStream,
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
starlark_pagable_typetag::starlark_pagable_typetag_impl(attr, input)
}