edaxGetBookMoveWithPosition method

MoveListWithPosition edaxGetBookMoveWithPosition()

Get book move list with position.

Implementation

@useResult
MoveListWithPosition edaxGetBookMoveWithPosition() {
  return using((Arena arena) {
    final dstM = arena<bindings.MoveList>();
    final dstP = arena<bindings.Position>();
    final symetry = _bindings.edax_get_bookmove_with_position(dstM, dstP);

    final moveList = dstM.ref;
    final resultMoveList = <Move>[];
    for (var k = 0; k < moveList.n_moves; k++) {
      final m = moveList.move[k + 1];
      resultMoveList.add(Move.fromCStruct(m));
    }

    final position = Position.fromCStruct(dstP.ref);

    return MoveListWithPosition(resultMoveList, position, symetry);
  });
}