use cge::gene::{Bias, NeuronId};
use cge::{Network, WithRecurrentState};
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
struct Foo {
x: i32,
y: [f64; 2],
}
fn main() {
let (mut network, mut metadata, extra) = Network::<f64>::load_file::<Foo, _>(
"test_data/with_extra_data_v1.cge",
WithRecurrentState(true),
)
.unwrap();
println!("metadata: {:?}", metadata);
println!("extra: {:?}", extra);
let output = network.evaluate(&[1.0, 2.0]).unwrap();
println!("output: {:?}", output);
network.clear_state();
let output_2 = network.evaluate(&[1.0, 2.0]).unwrap();
println!("output 2: {:?}", output_2);
let new_gene = Bias::new(1.5);
network.add_non_neuron(NeuronId::new(2), new_gene).unwrap();
metadata.description = Some("a new description".into());
let metadata = metadata.into_latest_version().unwrap();
network
.to_file(
metadata,
extra,
WithRecurrentState(true),
"test_output/with_extra_data.cge",
true,
)
.unwrap();
}