1pub mod proto {
9 pub mod plugin {
11 #![allow(missing_docs, clippy::all, clippy::pedantic, clippy::nursery)]
12 include!(concat!(env!("OUT_DIR"), "/foldit.plugin.rs"));
13 }
14}
15
16#[cfg(not(target_arch = "wasm32"))]
17pub mod abi;
18
19pub mod decode;
20pub mod error;
21pub mod plugin;
22pub mod protocol;
23
24#[cfg(feature = "python")]
25pub mod python;
26
27pub use error::{PluginError, Result};
28pub use plugin::{AssemblyPayload, Plugin};
29pub use protocol::{DispatchContext, ParamValue, PollOutcome, ResidueRef};
30
31#[cfg(feature = "python")]
32use pyo3::prelude::*;
33
34#[cfg(feature = "python")]
38#[pymodule(name = "foldit_plugin_sdk", gil_used = true)]
39fn foldit_plugin_sdk(_py: Python, m: &Bound<PyModule>) -> PyResult<()> {
40 m.add_class::<ResidueRef>()?;
41 m.add_class::<DispatchContext>()?;
42 m.add_class::<python::PyPollOutcome>()?;
43 m.add_class::<python::PyScoreReport>()?;
44 m.add_class::<python::PyResidueTermScores>()?;
45 m.add_class::<python::PyBonusContribution>()?;
46 Ok(())
47}