Skip to main content

sc_neurocore_engine/bindings/population/
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 — Population-model PyO3 binding composition
8
9use pyo3::prelude::*;
10
11mod brunel_network;
12mod brunel_wang;
13mod el_boustani_network;
14mod larter_breakspear;
15mod montbrio_mean_field;
16mod tum_network;
17mod wendling;
18mod wilson_cowan_unit;
19mod wong_wang_unit;
20
21pub use brunel_network::PyBrunelNetwork;
22pub use brunel_wang::PyBrunelWangNeuron;
23pub use el_boustani_network::PyElBoustaniNetwork;
24pub use larter_breakspear::PyLarterBreakspearNeuron;
25pub use montbrio_mean_field::PyMontbrioMeanField;
26pub use tum_network::PyTUMNetwork;
27pub use wendling::PyWendlingNeuron;
28pub use wilson_cowan_unit::PyWilsonCowanUnit;
29pub use wong_wang_unit::PyWongWangUnit;
30
31pub(crate) fn register_brunel_wang(module: &Bound<'_, PyModule>) -> PyResult<()> {
32    brunel_wang::register(module)?;
33    Ok(())
34}
35
36pub(crate) fn register_wilson_cowan_unit(module: &Bound<'_, PyModule>) -> PyResult<()> {
37    wilson_cowan_unit::register(module)?;
38    Ok(())
39}
40
41pub(crate) fn register_wong_wang_unit(module: &Bound<'_, PyModule>) -> PyResult<()> {
42    wong_wang_unit::register(module)?;
43    Ok(())
44}
45
46pub(crate) fn register_neural_mass_tail(module: &Bound<'_, PyModule>) -> PyResult<()> {
47    wendling::register(module)?;
48    larter_breakspear::register(module)?;
49    Ok(())
50}
51
52/// Register the four model-owned population classes in stable ABI order.
53pub(crate) fn register(module: &Bound<'_, PyModule>) -> PyResult<()> {
54    montbrio_mean_field::register(module)?;
55    brunel_network::register(module)?;
56    tum_network::register(module)?;
57    el_boustani_network::register(module)?;
58    Ok(())
59}