#![warn(missing_docs)]
#![warn(rust_2018_idioms)]
#![warn(missing_debug_implementations)]
pub mod error;
#[cfg(feature = "pyo3")]
pub mod adapter_aggregate;
#[cfg(feature = "pyo3")]
pub mod adapter_procedure;
#[cfg(feature = "pyo3")]
pub mod adapter_scalar;
#[cfg(feature = "pyo3")]
pub(crate) mod adapter_scalar_helpers;
#[cfg(feature = "pyo3")]
pub mod arrow_bridge;
#[cfg(feature = "pyo3")]
pub mod loader;
#[cfg(feature = "pyo3")]
pub mod manifest;
#[cfg(feature = "pyo3")]
pub mod plugin_handle;
#[cfg(feature = "pyo3")]
pub mod runtime;
#[doc(inline)]
pub use crate::error::PyPluginError;
#[cfg(feature = "pyo3")]
#[doc(inline)]
pub use crate::adapter_aggregate::{PyAccumulator, PyAggregateFn, build_py_agg_signature};
#[cfg(feature = "pyo3")]
#[doc(inline)]
pub use crate::adapter_procedure::PyProcedure;
#[cfg(feature = "pyo3")]
#[doc(inline)]
pub use crate::adapter_scalar::PyScalarFn;
#[cfg(feature = "pyo3")]
#[doc(inline)]
pub use crate::loader::{
LoadOutcome, PyDecoratorSink, PyDecoratorTrampoline, PyPluginLoader as PythonPluginLoader,
make_aggregate_trampoline, make_procedure_trampoline, make_scalar_trampoline,
};
#[cfg(feature = "pyo3")]
#[doc(inline)]
pub use crate::manifest::{
ManifestBuilder, PyAggregateEntry, PyManifest, PyProcedureEntry, PyScalarEntry,
};
#[cfg(feature = "pyo3")]
#[doc(inline)]
pub use crate::plugin_handle::PyPluginHandle;
#[cfg(feature = "pyo3")]
#[doc(inline)]
pub use crate::runtime::PyPluginRuntime;