Skip to main content

sc_neurocore_engine/bindings/trivial/
mod.rs

1// SPDX-License-Identifier: AGPL-3.0-or-later
2// Commercial license available
3// © Concepts 1996–2026 Miroslav Šotek. All rights reserved.
4// © Code 2020–2026 Miroslav Šotek. All rights reserved.
5// ORCID: 0009-0009-3560-0851
6// Contact: www.anulum.li | protoscience@anulum.li
7// SC-NeuroCore — Simple integrate-and-fire PyO3 binding composition
8
9use pyo3::prelude::*;
10
11#[path = "../adaptive_threshold_if.rs"]
12mod adaptive_threshold_if;
13mod closed_form_continuous;
14mod complementary_lif;
15mod energy_lif;
16mod gated_lif;
17mod inhibitory_lif;
18mod klif;
19mod mat;
20mod non_resetting_lif;
21mod nonlinear_lif;
22mod parametric_lif;
23mod perfect_integrator;
24mod quadratic_if;
25mod sfa;
26mod sigma_delta;
27mod theta;
28
29pub use adaptive_threshold_if::PyAdaptiveThresholdIFNeuron;
30pub use closed_form_continuous::PyClosedFormContinuousNeuron;
31pub use complementary_lif::PyComplementaryLIFNeuron;
32pub use energy_lif::PyEnergyLIFNeuron;
33pub use gated_lif::PyGatedLIFNeuron;
34pub use inhibitory_lif::PyInhibitoryLIFNeuron;
35pub use klif::PyKLIFNeuron;
36pub use mat::PyMATNeuron;
37pub use non_resetting_lif::PyNonResettingLIFNeuron;
38pub use nonlinear_lif::PyNonlinearLIFNeuron;
39pub use parametric_lif::PyParametricLIFNeuron;
40pub use perfect_integrator::PyPerfectIntegratorNeuron;
41pub use quadratic_if::PyQuadraticIFNeuron;
42pub use sfa::PySFANeuron;
43pub use sigma_delta::PySigmaDeltaNeuron;
44pub use theta::PyThetaNeuron;
45
46/// Register the sixteen model-owned simple integrate-and-fire classes in stable ABI order.
47pub(crate) fn register(module: &Bound<'_, PyModule>) -> PyResult<()> {
48    quadratic_if::register(module)?;
49    theta::register(module)?;
50    perfect_integrator::register(module)?;
51    gated_lif::register(module)?;
52    nonlinear_lif::register(module)?;
53    sfa::register(module)?;
54    mat::register(module)?;
55    klif::register(module)?;
56    inhibitory_lif::register(module)?;
57    complementary_lif::register(module)?;
58    parametric_lif::register(module)?;
59    non_resetting_lif::register(module)?;
60    adaptive_threshold_if::register(module)?;
61    sigma_delta::register(module)?;
62    energy_lif::register(module)?;
63    closed_form_continuous::register(module)?;
64    Ok(())
65}