pipewire_native_macros/
lib.rs

1// SPDX-License-Identifier: MIT
2// SPDX-FileCopyrightText: Copyright (c) 2025 Asymptotic Inc.
3// SPDX-FileCopyrightText: Copyright (c) 2025 Arun Raghavan
4
5use proc_macro::TokenStream;
6
7mod derive_enum_u32;
8mod derive_marshallable;
9mod derive_pod_struct;
10
11#[proc_macro_derive(EnumU32)]
12pub fn proc_macro_enum_u32(item: TokenStream) -> TokenStream {
13    derive_enum_u32::derive_enum_u32(item)
14}
15
16#[proc_macro_derive(PodStruct)]
17pub fn proc_macro_pod_struct(item: TokenStream) -> TokenStream {
18    derive_pod_struct::derive_pod_struct(item)
19}
20
21#[proc_macro_derive(Marshallable, attributes(opcode))]
22pub fn proc_macro_marshallable(item: TokenStream) -> TokenStream {
23    derive_marshallable::derive_marshallable(item)
24}