Package voyage provides the Voyage aggregate.



    This section is empty.


    View Source
    var (
    	V100 = New("V100", Schedule{
    			{DepartureLocation: location.CNHKG, ArrivalLocation: location.JNTKO},
    			{DepartureLocation: location.JNTKO, ArrivalLocation: location.USNYC},
    	V300 = New("V300", Schedule{
    			{DepartureLocation: location.JNTKO, ArrivalLocation: location.NLRTM},
    			{DepartureLocation: location.NLRTM, ArrivalLocation: location.DEHAM},
    			{DepartureLocation: location.DEHAM, ArrivalLocation: location.AUMEL},
    			{DepartureLocation: location.AUMEL, ArrivalLocation: location.JNTKO},
    	V400 = New("V400", Schedule{
    			{DepartureLocation: location.DEHAM, ArrivalLocation: location.SESTO},
    			{DepartureLocation: location.SESTO, ArrivalLocation: location.FIHEL},
    			{DepartureLocation: location.FIHEL, ArrivalLocation: location.DEHAM},

      A set of sample voyages.

      View Source
      var (
      	V0100S = New("0100S", Schedule{[]CarrierMovement{}})
      	V0200T = New("0200T", Schedule{[]CarrierMovement{}})
      	V0300A = New("0300A", Schedule{[]CarrierMovement{}})
      	V0301S = New("0301S", Schedule{[]CarrierMovement{}})
      	V0400S = New("0400S", Schedule{[]CarrierMovement{}})

        These voyages are hard-coded into the current pathfinder. Make sure they exist.

        View Source
        var ErrUnknown = errors.New("unknown voyage")

          ErrUnknown is used when a voyage could not be found.


          This section is empty.


          type CarrierMovement

          type CarrierMovement struct {
          	DepartureLocation location.UNLocode
          	ArrivalLocation   location.UNLocode
          	DepartureTime     time.Time
          	ArrivalTime       time.Time

            CarrierMovement is a vessel voyage from one location to another.

            type Number

            type Number string

              Number uniquely identifies a particular Voyage.

              type Repository

              type Repository interface {
              	Find(Number) (*Voyage, error)

                Repository provides access a voyage store.

                type Schedule

                type Schedule struct {
                	CarrierMovements []CarrierMovement

                  Schedule describes a voyage schedule.

                  type Voyage

                  type Voyage struct {
                  	Number   Number
                  	Schedule Schedule

                    Voyage is a uniquely identifiable series of carrier movements.

                    func New

                    func New(n Number, s Schedule) *Voyage

                      New creates a voyage with a voyage number and a provided schedule.