package locode import ( "git.frostfs.info/TrueCloudLab/frostfs-locode-db/pkg/locode" locodedb "git.frostfs.info/TrueCloudLab/frostfs-locode-db/pkg/locode/db" ) // Record is an interface of read-only // FrostFS LOCODE database single entry. type Record interface { // CountryCode must return ISO 3166-1 alpha-2 // country code. // // Must not return nil. CountryCode() *locodedb.CountryCode // CountryName must return English short country name // officially used by the ISO 3166 // Maintenance Agency (ISO 3166/MA). CountryName() string // LocationCode must return UN/LOCODE 3-character code // for the location (numerals 2-9 may also // be used). // // Must not return nil. LocationCode() *locodedb.LocationCode // LocationName must return name of the location which // have been allocated a UN/LOCODE without // diacritic sign. LocationName() string // SubDivCode Must return ISO 1-3 character alphabetic // and/or numeric code for the administrative // division of the country concerned. SubDivCode() string // SubDivName must return subdivision name. SubDivName() string // Continent 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 { // Get 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) }