// 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.

/// Generates FFI bindings for a given [Library].
library code_generator;

export 'code_generator/binding.dart';
export 'code_generator/compound.dart';
export 'code_generator/constant.dart';
export 'code_generator/enum_class.dart';
export 'code_generator/func.dart';
export 'code_generator/global.dart';
export 'code_generator/library.dart';
export 'code_generator/struc.dart';
export 'code_generator/type.dart';
export 'code_generator/typealias.dart';
export 'code_generator/union.dart';
