This commit is contained in:
Ryan Ward 2024-06-23 20:37:29 -04:00
parent fce8da40f0
commit 6e0fb377b8
6 changed files with 69 additions and 0 deletions

15
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,15 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/main.go"
}
]
}

5
go.mod Normal file
View File

@ -0,0 +1,5 @@
module github.com/rayaman/squish
go 1.22.4
require github.com/fatih/structs v1.1.0 // indirect

2
go.sum Normal file
View File

@ -0,0 +1,2 @@
github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=

13
main.go Normal file
View File

@ -0,0 +1,13 @@
package main
import "github.com/rayaman/squish/encoding"
type User struct {
Name string `binary:"limit=24"` // no
Age int `binary:""`
}
func main() {
user := &User{Name: "Ryan Ward", Age: 28}
encoding.GetOptions(user)
}

33
pkg/encoding/encoding.go Normal file
View File

@ -0,0 +1,33 @@
package encoding
import (
"fmt"
"strings"
"github.com/fatih/structs"
)
type options struct {
max int64
}
func GetOptions(obj any) options {
fields := structs.Fields(obj)
for _, field := range fields {
tag := field.Tag("binary")
tags := strings.Split(tag, ",")
fmt.Println(tags)
for _, val := range tags {
fmt.Println(strings.Split(val, "="))
}
}
return options{}
}
func Marshal(obj any, version int16) error {
return nil
}
func Unmarshal(data []byte) (any, int16, error) {
return nil, 0, nil
}

1
pkg/utils/utils.go Normal file
View File

@ -0,0 +1 @@
package utils