storage

package
v0.0.0-...-eaa9bf8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CompetitorFromStorage

func CompetitorFromStorage(d Competitor) models.Competitor

func DriverFromStorage

func DriverFromStorage(d Driver) models.Driver

func EventFromStorage

func EventFromStorage(d Event) models.Event

func TrackFromStorage

func TrackFromStorage(d Track) models.Track

func VehicleFromStorage

func VehicleFromStorage(d Vehicle) models.Vehicle

Types

type Class

type Class uint8

type Competitor

type Competitor struct {
	gorm.Model
	Vehicle Vehicle
	Driver  Driver
}

type DriveTrain

type DriveTrain uint8

type Driver

type Driver struct {
	gorm.Model
	Name          string
	Age           uint64
	TerrainSkills TerrainSkills `gorm:"embedded"`
	DrivingStyle  DrivingStyle  `gorm:"embedded"`
	VehicleSkills VehicleSkills `gorm:"embedded"`
	CompetitorID  uint
}

func DriverToStorage

func DriverToStorage(d models.Driver) Driver

type DrivingStyle

type DrivingStyle struct{ Recklessness, Communication, Aggressiveness, Adaptability, Reflexes uint32 }

type Event

type Event struct {
	gorm.Model
	Name        string
	Class       Class
	Tracks      []Track      `gorm:"many2many:event_tracks;"`
	Competitors []Competitor `gorm:"many2many:event_competitors;"`
}

type MemoryDB

type MemoryDB struct {
	Vehicles    []models.Vehicle
	Drivers     []models.Driver
	Tracks      []models.Track
	Events      []models.Event
	Competitors []models.Competitor
}

func NewMemoryDB

func NewMemoryDB() *MemoryDB

func (*MemoryDB) AddCompetitor

func (s *MemoryDB) AddCompetitor(ctx context.Context, obj schema.CompetitorSchema) error

func (*MemoryDB) AddDriver

func (s *MemoryDB) AddDriver(ctx context.Context, obj models.Driver) error

func (*MemoryDB) AddEvent

func (s *MemoryDB) AddEvent(ctx context.Context, obj schema.EventSchema) error

func (*MemoryDB) AddTrack

func (s *MemoryDB) AddTrack(ctx context.Context, obj models.Track) error

func (*MemoryDB) AddVehicle

func (s *MemoryDB) AddVehicle(ctx context.Context, obj models.Vehicle) error

func (*MemoryDB) GetCompetitor

func (s *MemoryDB) GetCompetitor(ctx context.Context, index uint) (models.Competitor, error)

func (*MemoryDB) GetDriver

func (s *MemoryDB) GetDriver(ctx context.Context, index uint) (models.Driver, error)

func (*MemoryDB) GetEvent

func (s *MemoryDB) GetEvent(ctx context.Context, index uint) (models.Event, error)

func (*MemoryDB) GetTrack

func (s *MemoryDB) GetTrack(ctx context.Context, index uint) (models.Track, error)

func (*MemoryDB) GetVehicle

func (s *MemoryDB) GetVehicle(ctx context.Context, index uint) (models.Vehicle, error)

func (*MemoryDB) ListCompetitors

func (s *MemoryDB) ListCompetitors(ctx context.Context) ([]models.Competitor, error)

func (*MemoryDB) ListDrivers

func (s *MemoryDB) ListDrivers(ctx context.Context) ([]models.Driver, error)

func (*MemoryDB) ListEvents

func (s *MemoryDB) ListEvents(ctx context.Context) ([]models.Event, error)

func (*MemoryDB) ListTracks

func (s *MemoryDB) ListTracks(ctx context.Context) ([]models.Track, error)

func (*MemoryDB) ListVehicles

func (s *MemoryDB) ListVehicles(ctx context.Context) ([]models.Vehicle, error)

func (*MemoryDB) UpdateCompetitor

func (s *MemoryDB) UpdateCompetitor(ctx context.Context, index uint, obj schema.CompetitorSchema) error

func (*MemoryDB) UpdateDriver

func (s *MemoryDB) UpdateDriver(ctx context.Context, index uint, obj models.Driver) error

func (*MemoryDB) UpdateEvent

func (s *MemoryDB) UpdateEvent(ctx context.Context, index uint, obj schema.EventSchema) error

func (*MemoryDB) UpdateTrack

func (s *MemoryDB) UpdateTrack(ctx context.Context, index uint, obj models.Track) error

func (*MemoryDB) UpdateVehicle

func (s *MemoryDB) UpdateVehicle(ctx context.Context, index uint, obj models.Vehicle) error

type Segment

type Segment struct {
	Length                     float64
	Direction, Corner, Terrain uint8
	Cut, Unseen, Jump          bool
}

type Segments

type Segments []Segment

func (*Segments) Scan

func (j *Segments) Scan(value interface{}) error

Scan scan value into Jsonb, implements sql.Scanner interface

func (Segments) Value

func (j Segments) Value() (driver.Value, error)

Value return json value, implement driver.Valuer interface

type SqliteDB

type SqliteDB struct {
	// contains filtered or unexported fields
}

func NewSqliteDB

func NewSqliteDB(fileName string) (*SqliteDB, error)

func (*SqliteDB) AddCompetitor

func (s *SqliteDB) AddCompetitor(ctx context.Context, obj schema.CompetitorSchema) (err error)

func (*SqliteDB) AddDriver

func (s *SqliteDB) AddDriver(ctx context.Context, obj models.Driver) (err error)

func (*SqliteDB) AddEvent

func (s *SqliteDB) AddEvent(ctx context.Context, obj schema.EventSchema) (err error)

func (*SqliteDB) AddTrack

func (s *SqliteDB) AddTrack(ctx context.Context, obj models.Track) (err error)

func (*SqliteDB) AddVehicle

func (s *SqliteDB) AddVehicle(ctx context.Context, obj models.Vehicle) (err error)

func (*SqliteDB) GetCompetitor

func (s *SqliteDB) GetCompetitor(ctx context.Context, index uint) (e models.Competitor, err error)

func (*SqliteDB) GetDriver

func (s *SqliteDB) GetDriver(ctx context.Context, index uint) (d models.Driver, err error)

func (*SqliteDB) GetEvent

func (s *SqliteDB) GetEvent(ctx context.Context, index uint) (e models.Event, err error)

func (*SqliteDB) GetTrack

func (s *SqliteDB) GetTrack(ctx context.Context, index uint) (t models.Track, err error)

func (*SqliteDB) GetVehicle

func (s *SqliteDB) GetVehicle(ctx context.Context, index uint) (v models.Vehicle, err error)

func (*SqliteDB) ListCompetitors

func (s *SqliteDB) ListCompetitors(ctx context.Context) (e []models.Competitor, err error)

func (*SqliteDB) ListDrivers

func (s *SqliteDB) ListDrivers(ctx context.Context) (e []models.Driver, err error)

func (*SqliteDB) ListEvents

func (s *SqliteDB) ListEvents(ctx context.Context) (e []models.Event, err error)

func (*SqliteDB) ListTracks

func (s *SqliteDB) ListTracks(ctx context.Context) (e []models.Track, err error)

func (*SqliteDB) ListVehicles

func (s *SqliteDB) ListVehicles(ctx context.Context) (e []models.Vehicle, err error)

func (*SqliteDB) UpdateCompetitor

func (s *SqliteDB) UpdateCompetitor(ctx context.Context, index uint, obj schema.CompetitorSchema) error

func (*SqliteDB) UpdateDriver

func (s *SqliteDB) UpdateDriver(ctx context.Context, index uint, obj models.Driver) error

func (*SqliteDB) UpdateEvent

func (s *SqliteDB) UpdateEvent(ctx context.Context, index uint, obj schema.EventSchema) error

func (*SqliteDB) UpdateTrack

func (s *SqliteDB) UpdateTrack(ctx context.Context, index uint, obj models.Track) error

func (*SqliteDB) UpdateVehicle

func (s *SqliteDB) UpdateVehicle(ctx context.Context, index uint, obj models.Vehicle) error

type Storage

type Storage interface {
	GetVehicle(ctx context.Context, index uint) (models.Vehicle, error)
	GetDriver(ctx context.Context, index uint) (models.Driver, error)
	GetTrack(ctx context.Context, index uint) (models.Track, error)
	GetEvent(ctx context.Context, index uint) (models.Event, error)
	GetCompetitor(ctx context.Context, index uint) (models.Competitor, error)
	AddVehicle(ctx context.Context, obj models.Vehicle) error
	AddDriver(ctx context.Context, obj models.Driver) error
	AddTrack(ctx context.Context, obj models.Track) error
	AddEvent(ctx context.Context, obj schema.EventSchema) error
	AddCompetitor(ctx context.Context, obj schema.CompetitorSchema) error
	ListVehicles(ctx context.Context) ([]models.Vehicle, error)
	ListDrivers(ctx context.Context) ([]models.Driver, error)
	ListTracks(ctx context.Context) ([]models.Track, error)
	ListEvents(ctx context.Context) ([]models.Event, error)
	ListCompetitors(ctx context.Context) ([]models.Competitor, error)
	UpdateVehicle(ctx context.Context, index uint, obj models.Vehicle) error
	UpdateDriver(ctx context.Context, index uint, obj models.Driver) error
	UpdateTrack(ctx context.Context, index uint, obj models.Track) error
	UpdateEvent(ctx context.Context, index uint, obj schema.EventSchema) error
	UpdateCompetitor(ctx context.Context, index uint, obj schema.CompetitorSchema) error
}

type TerrainSkills

type TerrainSkills struct{ Tarmac, Mud, HeavyGravel, LightGravel, Sand, Snow uint32 }

type Track

type Track struct {
	gorm.Model
	Name     string
	Country  string
	Segments Segments
}

func TrackToStorage

func TrackToStorage(d models.Track) Track

type Vehicle

type Vehicle struct {
	gorm.Model
	Name         string
	Manufacturer string
	Class        Class
	DriveTrain   DriveTrain
	VehicleStats VehicleStats `gorm:"embedded"`
	CompetitorID uint
}

func VehicleToStorage

func VehicleToStorage(d models.Vehicle) Vehicle

type VehicleSkills

type VehicleSkills struct{ FWD, RWD, AWD uint32 }

type VehicleStats

type VehicleStats struct{ Weight, Power, Torque, BreakTorque, Gears uint32 }

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL