wip: unmarshal
This commit is contained in:
parent
1a89cd2be6
commit
33a3a90d81
1
.tool-versions
Normal file
1
.tool-versions
Normal file
@ -0,0 +1 @@
|
|||||||
|
golang 1.18
|
||||||
1
gocsvparser.go
Normal file
1
gocsvparser.go
Normal file
@ -0,0 +1 @@
|
|||||||
|
package gocsvparser
|
||||||
1
marshal.go
Normal file
1
marshal.go
Normal file
@ -0,0 +1 @@
|
|||||||
|
package gocsvparser
|
||||||
2
proposals/initial.md
Normal file
2
proposals/initial.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Proposal 1
|
||||||
|
|
||||||
37
unmarshal.go
Normal file
37
unmarshal.go
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
package gocsvparser
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/csv"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Unmarshaler struct {
|
||||||
|
header []string
|
||||||
|
reader *csv.Reader
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewUnmarshaler() *Unmarshaler {
|
||||||
|
return &Unmarshaler{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *Unmarshaler) WithCsvReader(reader *csv.Reader) *Unmarshaler {
|
||||||
|
u.reader = reader
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *Unmarshaler) WithHeader(header []string) *Unmarshaler {
|
||||||
|
if len(header) > 0 {
|
||||||
|
newHeader := make([]string, len(header))
|
||||||
|
copy(newHeader, header)
|
||||||
|
u.header = newHeader
|
||||||
|
}
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *Unmarshaler) Unmarshal(data []byte, v interface{}) error {
|
||||||
|
//TODO: implementation
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func Unmarshal(data []byte, v interface{}) error {
|
||||||
|
return NewUnmarshaler().Unmarshal(data, v)
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user