1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! Factory types and associated utilities.
//!
//! In CLAP, factories are singleton objects exposed by the plugin library's
//! [entry point](crate::entry), which can in turn expose various functionalities.
//!
//! Each factory type has a standard, unique [identifier](Factory::IDENTIFIERS), which allows hosts
//! to query plugins for known factory type implementations.
//!
//! In Clack, factory implementations are represented by the [`Factory`] trait.
//!
//! The main factory type (and, at the time of this writing, the only stable standard one), is the
//! [`PluginFactory`](plugin::PluginFactoryImpl), which enables hosts to list all the plugin
//! implementations present in an entry.
//!
//! See the [`Entry`](crate::entry::Entry) trait documentation for an example on how to create a
//! custom entry and plugin factory.
pub use *;
pub use FactoryWrapperError;
pub use FactoryWrapper;
/// A types that provides a specific factory implementation.
///
/// # Safety
///
/// The wrapper returned by the [`wrapper`](Self::wrapper) function *must* wrap a `Raw` implementation
/// that fully complies to the CLAP specification of the given [`Factory`] type, and must remain
/// valid for the duration of the `'a` lifetime.
pub unsafe