// 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/func_type.dart';
export 'code_generator/global.dart';
export 'code_generator/handle.dart';
export 'code_generator/imports.dart';
export 'code_generator/library.dart';
export 'code_generator/native_type.dart';
export 'code_generator/objc_block.dart';
export 'code_generator/objc_built_in_functions.dart';
export 'code_generator/objc_interface.dart';
export 'code_generator/pointer.dart';
export 'code_generator/struct.dart';
export 'code_generator/type.dart';
export 'code_generator/typealias.dart';
export 'code_generator/union.dart';
