-
Notifications
You must be signed in to change notification settings - Fork 1
/
model_expression_time.go
42 lines (36 loc) · 1.06 KB
/
model_expression_time.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package nextroute
import (
"time"
"github.com/nextmv-io/sdk/connect"
)
// NewTimeExpression creates a new time expression.
func NewTimeExpression(
expression ModelExpression,
epoch time.Time,
) TimeExpression {
connect.Connect(con, &newTimeExpression)
return newTimeExpression(expression, epoch)
}
// NewStopTimeExpression creates a new duration expression.
func NewStopTimeExpression(
name string,
time time.Time,
) StopTimeExpression {
connect.Connect(con, &newStopTimeExpression)
return newStopTimeExpression(name, time)
}
// TimeExpression is a ModelExpression that returns a time.
type TimeExpression interface {
ModelExpression
// Time returns the time for the given parameters.
Time(ModelVehicleType, ModelStop, ModelStop) time.Time
}
// StopTimeExpression is a ModelExpression that returns a time per stop and
// allows to set the time per stop.
type StopTimeExpression interface {
ModelExpression
// Time returns the time for the given stop.
Time(stop ModelStop) time.Time
// SetTime sets the time for the given stop.
SetTime(ModelStop, time.Time)
}