use proc_macro2::TokenStream;
use quote::quote;
use syn::Ident;
pub(super) fn remote_methods(name: &Ident) -> TokenStream {
quote! {
pub fn set_remote(source: impl ::dynamic_config::RemoteSource) {
Self::dynamic_config_remote().set(source);
}
pub fn refresh_remote() -> ::core::result::Result<(), ::dynamic_config::Error> {
Self::dynamic_config_remote().refresh()
}
#[must_use]
pub fn remote_sink() -> ::dynamic_config::RemoteSink {
::dynamic_config::RemoteSink::new(
Self::dynamic_config_remote(),
Self::dynamic_config_remote_reload,
::core::stringify!(#name),
)
}
fn dynamic_config_remote_reload() -> ::core::result::Result<(), ::dynamic_config::Error>
{
Self::dynamic_config_builder()?.reload()
}
}
}
pub(super) fn clear_remote_method() -> TokenStream {
quote! {
pub fn clear_remote() {
Self::dynamic_config_remote().clear();
}
}
}