blob: aa2cb71f3c321637684ed088b7a83c0cc948b67a [file] [log] [blame]
// Copyright (c) 2017, 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:expect/expect.dart';
void main() {
final schema = const UserSchema();
final user = const User(first: 'firstname');
var map = schema._decode(user);
Expect.equals('firstname', map['first']);
class User {
final String first;
const User({
class Schema<T> {
final String name;
final Map<String, Object> Function(T) _decode;
const Schema({,
Map<String, Object> Function(T) decode,
: _decode = decode;
class UserSchema extends Schema<User> {
static Map<String, Object> _decode$(User user) {
return {
'first': user.first,
const UserSchema() : super(name: 'users', decode: _decode$);