class Node2VecStreamProc extends StreamProc<Node2Vec, HugeObjectArray<Vector>, Node2VecStreamProc.StreamResult, Node2VecStreamConfig> {

    @Procedure(value = "gds.alpha.node2vec.stream", mode = READ)
    @Description(NODE2VEC_DESCRIPTION)
    public Stream<StreamResult> stream(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ) {
        ComputationResult<Node2Vec, HugeObjectArray<Vector>, Node2VecStreamConfig> computationResult = compute(
            graphNameOrConfig,
            configuration
        );
        if (computationResult.isGraphEmpty()) {
            return Stream.empty();
        }
        Graph graph = computationResult.graph();
        var result = computationResult.result();

        return LongStream
            .range(0, graph.nodeCount())
            .mapToObj(nodeId -> new StreamResult(graph.toOriginalNodeId(nodeId), result.get(nodeId).data()));
    }

}