// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

///
//  Generated code. Do not modify.
//  source: lib/src/build_system/filecache.proto
///
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name

const Map<String, Object> FileHash$json = <String, Object>{
  '1': 'FileHash',
  '2': <Map<String, Object>>[
    <String, Object>{'1': 'path', '3': 1, '4': 1, '5': 9, '10': 'path'},
    <String, Object>{'1': 'hash', '3': 2, '4': 1, '5': 9, '10': 'hash'},
  ],
};

const Map<String, Object> FileStorage$json = <String, Object>{
  '1': 'FileHashStore',
  '2': <Map<String, Object>>[
    <String, Object>{'1': 'version', '3': 1, '4': 1, '5': 5, '10': 'version'},
    <String, Object>{'1': 'files', '3': 2, '4': 3, '5': 11, '6': '.flutter_tools.FileHash', '10': 'files'},
  ],
};
