From 3314b1faadb3dc7e3cc4682321dc810f4f4235e5 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Fri, 26 Apr 2019 14:27:22 +0200
Subject: [PATCH] Refactored API

---
 external_coachsequence.go | 5 +++--
 external_station.go       | 9 ++++++---
 external_timetable.go     | 5 +++--
 external_wings.go         | 9 ++++++---
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/external_coachsequence.go b/external_coachsequence.go
index d890f71..67ae95d 100644
--- a/external_coachsequence.go
+++ b/external_coachsequence.go
@@ -2,15 +2,16 @@ package bahn
 
 import (
 	"encoding/json"
+	"io"
 	"strconv"
 	"strings"
 	"time"
 	"unicode"
 )
 
-func CoachSequenceFromDecoder(source json.Decoder) (CoachSequence, error) {
+func CoachSequenceFromReader(source io.Reader) (CoachSequence, error) {
 	var raw rawCoachSequence
-	if err := source.Decode(&raw); err != nil {
+	if err := json.NewDecoder(source).Decode(&raw); err != nil {
 		return CoachSequence{}, err
 	}
 	return parseCoachSequence(raw), nil
diff --git a/external_station.go b/external_station.go
index e3d11cb..955c895 100644
--- a/external_station.go
+++ b/external_station.go
@@ -1,10 +1,13 @@
 package bahn
 
-import "encoding/xml"
+import (
+	"encoding/xml"
+	"io"
+)
 
-func StationsFromDecoder(source xml.Decoder) ([]Station, error) {
+func StationsFromReader(source io.Reader) ([]Station, error) {
 	var raw rawStations
-	if err := source.Decode(&raw); err != nil {
+	if err := xml.NewDecoder(source).Decode(&raw); err != nil {
 		return make([]Station, 0), err
 	}
 	return parseStations(raw), nil
diff --git a/external_timetable.go b/external_timetable.go
index 6665990..fb354ae 100644
--- a/external_timetable.go
+++ b/external_timetable.go
@@ -3,11 +3,12 @@ package bahn
 import (
 	"encoding/xml"
 	"fmt"
+	"io"
 )
 
-func TimetableFromDecoder(source xml.Decoder) (Timetable, error) {
+func TimetableFromReader(source io.Reader) (Timetable, error) {
 	var raw rawTimetable
-	if err := source.Decode(&raw); err != nil {
+	if err := xml.NewDecoder(source).Decode(&raw); err != nil {
 		return Timetable{}, err
 	}
 	return parseTimetable(raw), nil
diff --git a/external_wings.go b/external_wings.go
index 32afccf..9575c0f 100644
--- a/external_wings.go
+++ b/external_wings.go
@@ -1,10 +1,13 @@
 package bahn
 
-import "encoding/xml"
+import (
+	"encoding/xml"
+	"io"
+)
 
-func WingDefinitionFromDecoder(source xml.Decoder) (WingDefinition, error) {
+func WingDefinitionFromReader(source io.Reader) (WingDefinition, error) {
 	var raw rawWingDefinition
-	if err := source.Decode(&raw); err != nil {
+	if err := xml.NewDecoder(source).Decode(&raw); err != nil {
 		return WingDefinition{}, err
 	}
 	return parseWingDefinition(raw), nil
-- 
GitLab