#[allow(unused)]
#[macro_export]
macro_rules! define_object_manager {
($(#[$parent_meta:meta])* struct $struct_name:ident($obs_id:literal) for $updatable_name:ident {
$(
$(#[$meta:meta])*
$field:ident: $ty:ty,
)*
}) => {
paste::paste! {
#[libobs_simple_macro::obs_object_builder($obs_id)]
$(#[$parent_meta])*
pub struct [<$struct_name Builder>] {
$(
$(#[$meta])*
$field: $ty,
)*
}
#[libobs_simple_macro::obs_object_updater($obs_id, $updatable_name)]
pub struct [<$struct_name Updater>] {
$(
$(#[$meta])*
$field: $ty,
)*
}
}
};
}
#[allow(unused)]
pub(crate) use define_object_manager;