Skip to content

Instantly share code, notes, and snippets.

View JoshuaManton's full-sized avatar

Joshua Mark Manton JoshuaManton

View GitHub Profile
@JoshuaManton
JoshuaManton / json.odin
Created June 5, 2020 09:56
A JSON serializer/deserializer.
package main
import "core:fmt"
import "core:os"
import "core:mem"
import "core:strings"
import rt "core:runtime"
import "core:strconv"
main :: proc() {
{
"selector": "source.odin",
"file_regex": "^(.*.odin)[(]([0-9]+):([0-9]+)[)](.*)",
"variants": [
{
"name": "Check",
"cmd": ["odin", "check", ".", "-ignore-unknown-attributes"],
"shell": false,
"quiet": true,
},
Foozle :: struct {
i: int,
str: string,
tagged_union: union {
string,
int,
Foo_Enum,
},
nested: Nested,
ptr: ^int,
Foozle :: struct {
i: int,
str: string,
tagged_union: union {
string,
int,
Foo_Enum,
},
nested: Nested,
ptr: ^int,
import "core:fmt"
import "core:mem"
import "core:reflect"
import "core:strings"
import rt "core:runtime"
pretty_print :: proc(thing: any) {
sb: strings.Builder;
defer strings.destroy_builder(&sb);
print_value(&sb, thing.data, type_info_of(thing.id), 0);
package workbench
import "core:/sys/win32"
import "core:mem"
import "core:hash"
using import "core:fmt"
using import "../logging"