AutocompleteSegment

public enum AutocompleteSegment

AutocompleteSegment represents an entity found within the autocomplete search term.

An entity can be a brand, a point of interest (POI) category, or plain text. Every case has a corresponding associated object. This enum is used in AutocompleteResult to describe the matched entities returned from the autocomplete search.

An example of handling segments:

let options = AutocompleteOptions(
    query: "mar",
    position: .AMSTERDAM,
    radius: Measurement(value: 100, unit: .kilometers),
    countries: ["NL"]
)
search.autocomplete(options: options) { result in
    if case let .success(response) = result {
        response.results.forEach { result in
            result.segments.forEach { segment in
                switch segment {
                case .brand(let brand):
                    print("Brand: \(brand.brand.name)")
                case .poiCategory(let category):
                    print("Category: \(category.poiCategory.name)")
                case .plainText(let text):
                    print("Text: \(text.plainText)")
                @unknown default:
                    print("unknown")
                }
            }
        }
    }
}

 // Prints:
 //   Category: Market
 //   Brand: Marqt
 //   Category: Marina
 //   Brand: Marriott

  • Represents a matched brand entity.

    For example the query “BM” can return an autocomplete search result with the brand segment and the brand “BMW”.

    Declaration

    Swift

    case brand(AutocompleteSegmentBrand)
  • Represents a matched POI category entity.

    For example, the query “Air” can return an autocomplete search result with the category segment and the category “Airport”.

    Declaration

    Swift

    case poiCategory(AutocompleteSegmentPOICategory)
  • Represents a matched plain text entity.

    For example the query “Qwe” cannot be recognized as a brand or a category, so it can return an autocomplete search result with the plain text segment and the query “Qwe”.

    Declaration

    Swift

    case plainText(AutocompleteSegmentPlainText)