module main

import json

pub enum PlatformType {
	unknown
	osx
	ubuntu
	alpine
}

pub enum CPUType {
	unknown
	intel
	arm
	intel32
	arm32
}

@[heap]
pub struct Node {
pub:
	name string = 'mymachine'
pub mut:
	platform    PlatformType
	cputype     CPUType
	done        map[string]string
	environment map[string]string
}

pub fn (mut node Node) save() ! {
	data := json.encode(node)
	dump(data)
}

fn test_encode_with_mut_struct() {
	mut n := Node{
		platform: .osx
		cputype: .unknown
	}
	n.save() or { panic(err) }
}
