From 510680d6c597b46202ca4f66cc0765fe106395c7 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sat, 20 Nov 2021 18:51:19 -1000 Subject: [PATCH] Start of code growth --- grow/add_one.yaml | 7 +++++++ grow/definition.go | 30 ++++++++++++++++++++++++++++++ grow/main.go | 26 ++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 grow/add_one.yaml create mode 100644 grow/definition.go create mode 100644 grow/main.go diff --git a/grow/add_one.yaml b/grow/add_one.yaml new file mode 100644 index 0000000..1cfc267 --- /dev/null +++ b/grow/add_one.yaml @@ -0,0 +1,7 @@ +global_memory_size: 1 +function_memory_size: 1 +samples: +- global_memory_inputs: + 0: 0 + global_memory_outputs: + 0: 1 diff --git a/grow/definition.go b/grow/definition.go new file mode 100644 index 0000000..8d59906 --- /dev/null +++ b/grow/definition.go @@ -0,0 +1,30 @@ +package main + +import "io" + +import "gopkg.in/yaml.v2" + +type Definition struct { + GlobalMemorySize uint64 `yaml:"global_memory_size"` + FunctionMemorySize uint64 `yaml:"function_memory_size"` + Samples []*Sample `yaml:"samples"` +} + +type Sample struct { + GlobalMemoryInputs map[uint64]uint64 `yaml:"global_memory_inputs"` + GlobalMemoryOutputs map[uint64]uint64 `yaml:"global_memory_outputs"` +} + +func loadDefinition(r io.Reader) (*Definition, error) { + dec := yaml.NewDecoder(r) + dec.SetStrict(true) + + def := &Definition{} + + err := dec.Decode(def) + if err != nil { + return nil, err + } + + return def, nil +} diff --git a/grow/main.go b/grow/main.go new file mode 100644 index 0000000..f9c9865 --- /dev/null +++ b/grow/main.go @@ -0,0 +1,26 @@ +package main + +import "flag" +import "log" +import "os" + +func main() { + defPath := flag.String("def-path", "", "path to definition YAML file") + flag.Parse() + + if *defPath == "" { + log.Fatal("Please specify --def-path") + } + + defFile, err := os.Open(*defPath) + if err != nil { + log.Fatal(err) + } + + def, err := loadDefinition(defFile) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", def) +}