edaxGetBookMoveWithPositionByMoves method

MoveListWithPosition edaxGetBookMoveWithPositionByMoves(
  1. String moves
)

Get book move list with position by specified moves.

Implementation

@useResult
MoveListWithPosition edaxGetBookMoveWithPositionByMoves(final String moves) {
  return using((Arena arena) {
    final dstM = arena<bindings.MoveList>();
    final dstP = arena<bindings.Position>();
    final movesPointer = moves.toCharPointer(arena);
    final symetry = _bindings.edax_get_bookmove_with_position_by_moves(
      movesPointer,
      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);
  });
}