blob: 0f143922bb7d75beb143388a72c9d8a7d6a5acfb [file] [edit]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
enum BuildStatus {
started,
succeeded,
failed;
factory BuildStatus.fromJson(String json) {
return BuildStatus.values.firstWhere(
(e) => e.name == json,
orElse: () {
throw ArgumentError('Unknown BuildStatus: $json');
},
);
}
String toJson() => name;
}
class BuildResult {
final BuildStatus status;
BuildResult({required this.status});
factory BuildResult.fromJson(Map<String, dynamic> json) {
return BuildResult(status: BuildStatus.fromJson(json['status'] as String));
}
Map<String, dynamic> toJson() {
return {'status': status.toJson()};
}
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is BuildResult &&
runtimeType == other.runtimeType &&
status == other.status;
@override
int get hashCode => status.hashCode;
@override
String toString() => 'BuildResult(status: $status)';
}