Starting to add template data types
This commit is contained in:
@@ -1,12 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "Test Dataset",
|
"name": "Test Dataset",
|
||||||
"id": "test_dataset",
|
"id": "test_dataset",
|
||||||
"uuid": "019bd8f5-7e61-7cac-b4b6-630aba8721a8",
|
"uuid": "019bd96e-0b04-752b-a8f3-8dcdf27bc344",
|
||||||
"data_object_type": "items",
|
"data_object_type": "items",
|
||||||
"objects": [
|
"objects": [
|
||||||
{
|
{
|
||||||
"name": "Test Item",
|
"name": "Test Item",
|
||||||
"id": "test-item",
|
"id": "test-item",
|
||||||
|
"template_id": "",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"id": "cost",
|
"id": "cost",
|
||||||
20
main.odin
20
main.odin
@@ -1,20 +1,27 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import "core:fmt"
|
import "core:fmt"
|
||||||
|
import "core:os/os2"
|
||||||
|
import "core:path/slashpath"
|
||||||
import sz "szlib"
|
import sz "szlib"
|
||||||
|
|
||||||
|
|
||||||
json_path :: "test_dataset.json"
|
|
||||||
|
|
||||||
main :: proc() {
|
main :: proc() {
|
||||||
|
data_path, dp_error := sz.get_data_directory()
|
||||||
|
if dp_error != os2.General_Error.None {
|
||||||
|
fmt.eprintln("Could not get application data path")
|
||||||
|
}
|
||||||
|
|
||||||
|
json_path := slashpath.join({data_path, "test_dataset.json"})
|
||||||
|
|
||||||
|
|
||||||
test_dataset := sz.create_test_dataset()
|
test_dataset := sz.create_test_dataset()
|
||||||
sz.write_dataset_to_json(test_dataset, json_path)
|
sz.write_dataset_to_json(test_dataset, json_path)
|
||||||
|
|
||||||
parsed_dataset, ok := sz.parse_json_to_dataset(json_path)
|
parsed_dataset, ok := sz.parse_json_to_dataset(json_path)
|
||||||
if !ok {
|
if !ok {
|
||||||
fmt.eprintfln("Failed to parse json tto dataset")
|
fmt.eprintfln("Failed to parse json to dataset")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.println("Dataset:", parsed_dataset.name)
|
fmt.println("Dataset:", parsed_dataset.name)
|
||||||
@@ -25,4 +32,5 @@ main :: proc() {
|
|||||||
fmt.println(" ", field.id, ":", field.type, "=", field.value)
|
fmt.println(" ", field.id, ":", field.type, "=", field.value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
13
shell.nix
Normal file
13
shell.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
|
||||||
|
pkgs.mkShell {
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
odin
|
||||||
|
ols
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
echo "Odin Shell"
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -1,37 +1,47 @@
|
|||||||
package szlib
|
package szlib
|
||||||
|
|
||||||
Dataset :: struct {
|
Dataset :: struct {
|
||||||
name: string,
|
name: string,
|
||||||
id: string,
|
id: string,
|
||||||
uuid: string,
|
uuid: string,
|
||||||
data_object_type: string,
|
data_object_type: string,
|
||||||
objects: [dynamic]SzDataObject
|
data_object_template_id: string,
|
||||||
|
objects: [dynamic]SzDataObject,
|
||||||
}
|
}
|
||||||
|
|
||||||
SzDataObject :: struct {
|
SzDataObject :: struct {
|
||||||
name: string,
|
name: string,
|
||||||
id: string,
|
id: string,
|
||||||
fields: [dynamic]SzField
|
fields: [dynamic]SzField,
|
||||||
}
|
}
|
||||||
|
|
||||||
SzField :: struct {
|
SzField :: struct {
|
||||||
id: string,
|
id: string,
|
||||||
type: SzFieldType,
|
type: SzFieldType,
|
||||||
is_list: bool,
|
is_list: bool,
|
||||||
value: string,
|
value: string,
|
||||||
}
|
}
|
||||||
|
|
||||||
SzDataObjectTemplate :: struct {
|
SzDataObjectTemplate :: struct {
|
||||||
|
name: string,
|
||||||
|
id: string,
|
||||||
|
uuid: string,
|
||||||
|
data_object_type: string,
|
||||||
|
fields: [dynamic]SzTemplateField,
|
||||||
}
|
}
|
||||||
|
|
||||||
SzTemplateField :: struct {
|
SzTemplateField :: struct {
|
||||||
id: string,
|
id: string,
|
||||||
type: SzFieldType,
|
type: SzFieldType,
|
||||||
is_list: bool,
|
is_list: bool,
|
||||||
default_value: string,
|
default_value: string,
|
||||||
}
|
}
|
||||||
|
|
||||||
SzFieldType :: enum {
|
SzFieldType :: enum {
|
||||||
TEXT, NUMBER, BOOL, FORMULA, REF
|
TEXT,
|
||||||
|
NUMBER,
|
||||||
|
BOOL,
|
||||||
|
FORMULA,
|
||||||
|
REF,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user