Skip to content
GraphNodeGetId

GraphNodeGetId

Description

Get the stable node id carried by a traversal handle.

Parameters

Name Direction Description
node in GraphNode handle.

Success

Stable GraphNodeId for the handle.

Failure

Function cannot fail.

Usage example (Cross-references)

Usage examples (Cross-references)
    
        GraphNodeVisit(node);
        if (GraphNodeGetId(node) == goal_id) {
            return true;
        }
    
        GraphForeachNode(&graph, node) {
            (void)MapEnsurePtr(&counts, GraphNodeGetId(node), 0);
            GraphNodeForeachNeighbor(node, neighbor) {
                u64 *count = MapEnsurePtr(&counts, GraphNodeGetId(neighbor), 0);
            (void)MapEnsurePtr(&counts, GraphNodeGetId(node), 0);
            GraphNodeForeachNeighbor(node, neighbor) {
                u64 *count = MapEnsurePtr(&counts, GraphNodeGetId(neighbor), 0);
                *count += 1;
            }
    
        GraphForeachNode(&graph, node) {
            if (GraphNodeGetId(node) == a) {
                GraphNodeForeachNeighbor(node, neighbor) {
                    if (GraphNodeGetId(neighbor) == b) {
            if (GraphNodeGetId(node) == a) {
                GraphNodeForeachNeighbor(node, neighbor) {
                    if (GraphNodeGetId(neighbor) == b) {
                        (void)GraphMarkEdgeForRemoval(&graph, GraphNodeGetId(node), GraphNodeGetId(neighbor));
                    }
                GraphNodeForeachNeighbor(node, neighbor) {
                    if (GraphNodeGetId(neighbor) == b) {
                        (void)GraphMarkEdgeForRemoval(&graph, GraphNodeGetId(node), GraphNodeGetId(neighbor));
                    }
                }
    
        bool result = graph.alignment == 32 && GraphNodeIdIndex(node_id) == 0 && GraphNodeIdGeneration(node_id) == 1;
        result      = result && GraphNodeGetId(node) == node_id;
        result      = result && GraphNodeIndex(node) == 0;
        result      = result && GraphContainsNode(&graph, node_id);
        result      = result && GraphNodeAt(&graph, b) == 25;
        result      = result && GraphNodeData(&graph, node_b) == 25;
        result      = result && GraphNodeGetId(node_b) == b;
        result      = result && GraphNodeIndex(node_b) == GraphNodeIdIndex(b);
        result      = result && GraphOutDegree(&graph, a) == 2;
    /// TAGS: Graph, Node, Index, Handle
    ///
    #define GraphNodeIndex(node) GraphNodeIdIndex(GraphNodeGetId(node))
    
    ///
Last updated on