psyche_serde/
json.rs

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}