parse.go 588 B

1234567891011121314151617181920212223
  1. package gen7
  2. import (
  3. "fmt"
  4. p "github.com/ajswis/go-pkparse-server/pokemon"
  5. )
  6. // Parse accepts a raw pokemon (byte slice) and either returns a Pokemon struct
  7. // with all applicable fields populated or an error depicting the reason for
  8. // failure.
  9. func Parse(rawPokemon p.RawPokemon) (*p.Pokemon, error) {
  10. if l := len(rawPokemon); l < 232 {
  11. return nil, fmt.Errorf("Invalid length for generation 7 pokemon: %d bytes", l)
  12. }
  13. var pkmn p.Pokemon
  14. pkmn.RawNickname = rawPokemon[0x40:0x58]
  15. pkmn.Nickname = string(pkmn.RawNickname)
  16. pkmn.RawPokemon = &rawPokemon
  17. return &pkmn, nil
  18. }