Skip to content

Instantly share code, notes, and snippets.

@borakasmer
Last active August 15, 2020 22:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save borakasmer/3344360eae5fd496db74b420ec941a7f to your computer and use it in GitHub Desktop.
Save borakasmer/3344360eae5fd496db74b420ec941a7f to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"time"
"strings"
)
type CarType int
const (
Kawasaki CarType = iota
Honda
Suzuki
Ducati
)
type ServiceData struct{
Id int
PersonalName string
Model CarType
Price float32
Date time.Time
}
var counter *int
var dataHistoryList map[int]ServiceData
func UpdateDataChange(model *ServiceData,counter *int) {
*counter++
model.Id=*counter
dataHistoryList[*counter] = *model
}
func Undo() ServiceData{
index := *counter -1
if index >=1 {
*counter=index
return dataHistoryList[index]
}
return dataHistoryList[*counter]
}
func Redo() ServiceData{
index := *counter +1
if index <= len(dataHistoryList)-1{
*counter=index
return dataHistoryList[index]
}
return dataHistoryList[*counter +1]
}
func main() {
counter = new(int)
dataHistoryList = make(map[int]ServiceData)
mainData := ServiceData{PersonalName: "Bora Kasmer", Model: Honda, Price: 385.50, Date: time.Now()}
UpdateDataChange(&mainData,counter)
fmt.Println(mainData)
mainData = ServiceData{PersonalName: "Kent Back", Model: Kawasaki, Price: 1650.50, Date: time.Now()}
UpdateDataChange(&mainData,counter)
fmt.Println(mainData)
mainData = ServiceData{PersonalName: "Martin Fowler", Model: Ducati, Price: 2350.50, Date: time.Now()}
UpdateDataChange(&mainData,counter)
fmt.Println(mainData)
fmt.Println(strings.Repeat("-",100))
mainData= Undo()
fmt.Println("1 Geri Git: ",mainData)
fmt.Println(strings.Repeat("-",100))
mainData= Undo()
fmt.Println("1 Geri Git: ",mainData)
fmt.Println(strings.Repeat("-",100))
mainData= Redo()
fmt.Println("1 İleri Git: ",mainData)
fmt.Println(strings.Repeat("-",100))
mainData= Redo()
fmt.Println("1 İleri Git: ",mainData)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment