# inventory::submit - Rust
Enter an element into the plugin registry corresponding to its type.
Keywords: rust, rustlang, rust-lang, submit

# Macro inventory::submit [−] [src]

    macro_rules! submit {
        ($($value:tt)*) => { ... };
    }

Enter an element into the plugin registry corresponding to its type.

This call may be in the same crate that defines the type, or downstream in any crate that depends on that crate.

This macro does not “run” anything so place it outside of any function body. In particular, note that all `submit!` invocations across all source files linked into your application all take effect simultaneously. A `submit!` invocation is not a statement that needs to be called from `main` in order to execute.

# Examples

Put `submit!` invocations outside of any function body.

    inventory::submit! {
        Flag::new('v', "verbose")
    }

Do not try to invoke `submit!` from inside of a function body as it does not do what you want.

ⓘ

    // Do not do this.
    fn submit_flags(has_verbose_flag: bool) {
        if has_verbose_flag {
            inventory::submit! {
                Flag::new('v', "verbose")
            }
        }
    }

Refer to the crate level documentation for a complete example of instantiating and iterating a plugin registry.