blob: 8242a739564c5e92ce9b3958811655f5ad8e8d7c [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_OMNIBOX_MODEL_AUTOCOMPLETE_SUGGESTION_GROUP_IMPL_H_
#define IOS_CHROME_BROWSER_OMNIBOX_MODEL_AUTOCOMPLETE_SUGGESTION_GROUP_IMPL_H_
#import "ios/chrome/browser/omnibox/model/autocomplete_suggestion.h"
// A basic implementation of AutocompleteSuggestionGroup
@interface AutocompleteSuggestionGroupImpl
: NSObject <AutocompleteSuggestionGroup>
// Optional title.
@property(nonatomic, copy, readonly) NSString* title;
// Contained suggestions.
@property(nonatomic, strong, readonly)
NSArray<id<AutocompleteSuggestion>>* suggestions;
// How suggestion are displayed.
@property(nonatomic, readonly) SuggestionGroupDisplayStyle displayStyle;
// The suggestion group type.
@property(nonatomic, readonly) SuggestionGroupType type;
- (instancetype)initWithTitle:(NSString*)title
suggestions:(NSArray<id<AutocompleteSuggestion>>*)suggestions
displayStyle:(SuggestionGroupDisplayStyle)displayStyle
type:(SuggestionGroupType)type
NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
+ (AutocompleteSuggestionGroupImpl*)
groupWithTitle:(NSString*)title
suggestions:(NSArray<id<AutocompleteSuggestion>>*)suggestions
displayStyle:(SuggestionGroupDisplayStyle)displayStyle
type:(SuggestionGroupType)type;
// Instantiates a suggestion group with `SuggestionGroupDisplayStyleDefault` as
// displayStyle.
+ (AutocompleteSuggestionGroupImpl*)
groupWithTitle:(NSString*)title
suggestions:(NSArray<id<AutocompleteSuggestion>>*)suggestions
type:(SuggestionGroupType)type;
@end
#endif // IOS_CHROME_BROWSER_OMNIBOX_MODEL_AUTOCOMPLETE_SUGGESTION_GROUP_IMPL_H_