// Copyright (c) 2021, 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.

// @dart = 2.9

// Tests that we can implement the Allocator interface.

import 'dart:ffi';

class MyAllocator implements Allocator {
  const MyAllocator();

  @override
  Pointer<T> allocate<T extends NativeType>(int numBytes, {int alignment}) {
    throw "Not implemented";
  }

  void free(Pointer pointer) {}
}

const myAllocator = MyAllocator();

void main() {
  print(myAllocator);
}
