import 'github_search_api.dart'; import './SearchResult.dart'; import 'package:json_annotation/json_annotation.dart'; part 'SearchState.g.dart'; @JsonSerializable() class SearchState extends Object with _$SearchStateSerializerMixin { final SearchResult result; final bool hasError; final bool isLoading; SearchState({ this.result, this.hasError = false, this.isLoading = false, }); factory SearchState.initial() => new SearchState(result: SearchResult.noTerm()); factory SearchState.loading() => SearchState(isLoading: true); factory SearchState.error() => SearchState(hasError: true); }