# Copyright (c) 2013, 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.

# This file contains all sources for the dart:convert library.
{
  'sources': [
    'convert.dart',
    # The above file needs to be first as it lists the parts below.
    'ascii.dart',
    'byte_conversion.dart',
    'chunked_conversion.dart',
    'codec.dart',
    'converter.dart',
    'encoding.dart',
    'html_escape.dart',
    'json.dart',
    'latin1.dart',
    'line_splitter.dart',
    'string_conversion.dart',
    'utf.dart',
  ],
}
