feagi_api/v1/
neuron_dtos.rs1use serde::{Deserialize, Serialize};
9use utoipa::ToSchema;
10
11#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
13#[schema(example = json!({
14 "neuron_id": 12345,
15 "cortical_area": "v1",
16 "coordinates": [10, 15, 2],
17 "membrane_potential": -70.0,
18 "is_firing": false,
19 "synaptic_inputs": 120,
20 "synaptic_outputs": 85
21}))]
22pub struct NeuronInfoResponse {
23 pub neuron_id: u64,
25
26 pub cortical_area: String,
28
29 pub coordinates: [u32; 3],
31
32 pub membrane_potential: f32,
34
35 pub is_firing: bool,
37
38 pub synaptic_inputs: usize,
40
41 pub synaptic_outputs: usize,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
47pub struct CreateNeuronRequest {
48 pub cortical_area: String,
50
51 pub coordinates: [u32; 3],
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
57pub struct NeuronListResponse {
58 pub neurons: Vec<NeuronInfoResponse>,
60
61 pub total_count: usize,
63
64 #[serde(skip_serializing_if = "Option::is_none")]
66 pub cortical_area: Option<String>,
67}
68
69#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
71pub struct NeuronCountResponse {
72 pub cortical_area: String,
74
75 pub neuron_count: usize,
77}