frostfs-node/pkg/innerring/processors/netmap/nodevalidation/locode/deps.go

60 lines
1.4 KiB
Go
Raw Permalink Normal View History

package locode
import (
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/locode"
locodedb "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/locode/db"
)
// Record is an interface of read-only
// FrostFS LOCODE database single entry.
type Record interface {
// Must return ISO 3166-1 alpha-2
// country code.
//
// Must not return nil.
CountryCode() *locodedb.CountryCode
// Must return English short country name
// officially used by the ISO 3166
// Maintenance Agency (ISO 3166/MA).
CountryName() string
// Must return UN/LOCODE 3-character code
// for the location (numerals 2-9 may also
// be used).
//
// Must not return nil.
LocationCode() *locodedb.LocationCode
// Must return name of the location which
// have been allocated a UN/LOCODE without
// diacritic sign.
LocationName() string
// Must return ISO 1-3 character alphabetic
// and/or numeric code for the administrative
// division of the country concerned.
SubDivCode() string
// Must return subdivision name.
SubDivName() string
// Must return existing continent where is
// the location.
//
// Must not return nil.
Continent() *locodedb.Continent
}
// DB is an interface of read-only
// FrostFS LOCODE database.
type DB interface {
// Must find the record that corresponds to
// LOCODE and provides the Record interface.
//
// Must return an error if Record is nil.
//
// LOCODE is always non-nil.
Get(*locode.LOCODE) (Record, error)
}