You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: config.rs
    path of file: ./repos/moon/crates/core/lang/src
    
    the code of the file until where you have to start completion: // TODO: Improve macro so that it can be called multiple times within the same file.
// Right now the "load_config" functions cause a name collision.
#[macro_export]
macro_rules! config_cache {
    ($struct:ident, $file:expr, $reader:ident) => {
 
    
            pub fn write(value: $struct) -> miette::Result<()> {
                use cached::Cached;
                use moon_logger::trace;
                use starbase_styles::color;

                let mut cache = LOAD_CONFIG.lock().unwrap();

                trace!(
                    target: "moon:lang:config",
                    "Writing {} to cache",
                    color::path(&value.path),
                );

                // Write to the file system
                $writer(&value.path, &value)?;

                // And store in the cache
                cache.cache_set(value.path.clone(), value);

                Ok(())
            }