package ini import ( "fmt" ) type Unmarshaler interface { UnmarshalINI([]byte) error } type decode struct { scan *scanner } func Unmarshal(d []byte, v interface{}) error { dec := &decode{ newScanner(d), } if err := dec.scan.valid(); err != nil { fmt.Println("ERROR, invalid", err) return err } return nil }