// Copyright (c) 2018, 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. import 'package:json_annotation/json_annotation.dart'; class GenericConverter implements JsonConverter> { const GenericConverter(); @override T fromJson(Map json) => null; @override Map toJson(T object) => {}; } class TrivialNumber { final int value; TrivialNumber(this.value); } class TrivialNumberConverter implements JsonConverter { static const instance = TrivialNumberConverter(); const TrivialNumberConverter(); @override TrivialNumber fromJson(int json) => TrivialNumber(json); @override int toJson(TrivialNumber object) => object.value; } class BigIntStringConverter implements JsonConverter { const BigIntStringConverter(); @override BigInt fromJson(String json) => BigInt.parse(json); @override String toJson(BigInt object) => object.toString(); } const durationConverter = DurationMillisecondConverter(); class DurationMillisecondConverter implements JsonConverter { const DurationMillisecondConverter(); @override Duration fromJson(int json) => Duration(milliseconds: json); @override int toJson(Duration object) => object.inMilliseconds; } class EpochDateTimeConverter implements JsonConverter { const EpochDateTimeConverter(); @override DateTime fromJson(int json) => DateTime.fromMillisecondsSinceEpoch(json); @override int toJson(DateTime object) => object.millisecondsSinceEpoch; }