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 export;
22pub mod plugin;
23pub mod protocol;
24
25#[cfg(feature = "python")]
26pub mod python;
27
28pub use error::{PluginError, Result};
29pub use plugin::{AssemblyPayload, Plugin};
30pub use protocol::{DispatchContext, ParamValue, PollOutcome, ResidueRef};
31
32#[cfg(feature = "python")]
33use pyo3::prelude::*;
34
35#[cfg(feature = "python")]
39#[pymodule(name = "foldit_plugin_sdk", gil_used = true)]
40fn foldit_plugin_sdk(_py: Python, m: &Bound<PyModule>) -> PyResult<()> {
41 m.add_class::<ResidueRef>()?;
42 m.add_class::<DispatchContext>()?;
43 m.add_class::<python::PyPollOutcome>()?;
44 m.add_class::<python::PyScoreReport>()?;
45 m.add_class::<python::PyResidueTermScores>()?;
46 m.add_class::<python::PyBonusContribution>()?;
47 Ok(())
48}