1use psyche_core::brain::{Brain, BrainActivityMap};
2use psyche_core::brain_builder::BrainBuilder;
3use psyche_core::config::Config;
4use psyche_core::offspring_builder::OffspringBuilder;
5use serde_json::Result as JsonResult;
6
7#[inline]
8pub fn brain_to_json(brain: &Brain, pretty: bool) -> JsonResult<String> {
9 if pretty {
10 serde_json::to_string_pretty(brain)
11 } else {
12 serde_json::to_string(brain)
13 }
14}
15
16#[inline]
17pub fn brain_from_json(json: &str) -> JsonResult<Brain> {
18 serde_json::from_str(json)
19}
20
21#[inline]
22pub fn brain_activity_map_to_json(bam: &BrainActivityMap, pretty: bool) -> JsonResult<String> {
23 if pretty {
24 serde_json::to_string_pretty(bam)
25 } else {
26 serde_json::to_string(bam)
27 }
28}
29
30#[inline]
31pub fn brain_activity_map_from_json(json: &str) -> JsonResult<BrainActivityMap> {
32 serde_json::from_str(json)
33}
34
35#[inline]
36pub fn config_to_json(config: &Config, pretty: bool) -> JsonResult<String> {
37 if pretty {
38 serde_json::to_string_pretty(config)
39 } else {
40 serde_json::to_string(config)
41 }
42}
43
44#[inline]
45pub fn config_from_json(json: &str) -> JsonResult<Config> {
46 serde_json::from_str(json)
47}
48
49#[inline]
50pub fn brain_builder_to_json(brain_builder: &BrainBuilder, pretty: bool) -> JsonResult<String> {
51 if pretty {
52 serde_json::to_string_pretty(brain_builder)
53 } else {
54 serde_json::to_string(brain_builder)
55 }
56}
57
58#[inline]
59pub fn brain_builder_from_json(json: &str) -> JsonResult<BrainBuilder> {
60 serde_json::from_str(json)
61}
62
63#[inline]
64pub fn offspring_builder_to_json(
65 offspring_builder: &OffspringBuilder,
66 pretty: bool,
67) -> JsonResult<String> {
68 if pretty {
69 serde_json::to_string_pretty(offspring_builder)
70 } else {
71 serde_json::to_string(offspring_builder)
72 }
73}
74
75#[inline]
76pub fn offspring_builder_from_json(json: &str) -> JsonResult<OffspringBuilder> {
77 serde_json::from_str(json)
78}