@@ -175,6 +175,9 @@ pub enum GraphNodeType {
175175 /// Conditional node.
176176 #[ cfg( conditional_node) ]
177177 Conditional ,
178+ /// Reserved by CUDA; this does not represent a supported graph operation.
179+ #[ cfg( reserved_graph_node_16) ]
180+ Reserved16 ,
178181}
179182
180183impl GraphNodeType {
@@ -197,6 +200,8 @@ impl GraphNodeType {
197200 CU_GRAPH_NODE_TYPE_BATCH_MEM_OP => GraphNodeType :: BatchMemoryOperation ,
198201 #[ cfg( conditional_node) ]
199202 CU_GRAPH_NODE_TYPE_CONDITIONAL => GraphNodeType :: Conditional ,
203+ #[ cfg( reserved_graph_node_16) ]
204+ CU_GRAPH_NODE_TYPE_RESERVED_16 => GraphNodeType :: Reserved16 ,
200205 }
201206 }
202207
@@ -219,6 +224,8 @@ impl GraphNodeType {
219224 Self :: BatchMemoryOperation => CU_GRAPH_NODE_TYPE_BATCH_MEM_OP ,
220225 #[ cfg( conditional_node) ]
221226 Self :: Conditional => CU_GRAPH_NODE_TYPE_CONDITIONAL ,
227+ #[ cfg( reserved_graph_node_16) ]
228+ Self :: Reserved16 => CU_GRAPH_NODE_TYPE_RESERVED_16 ,
222229 }
223230 }
224231}
@@ -518,3 +525,26 @@ impl Drop for Graph {
518525 }
519526 }
520527}
528+
529+ #[ cfg( test) ]
530+ mod node_type_tests {
531+ use super :: { GraphNodeType , driver_sys:: CUgraphNodeType } ;
532+
533+ #[ test]
534+ fn kernel_node_round_trip ( ) {
535+ let raw = CUgraphNodeType :: CU_GRAPH_NODE_TYPE_KERNEL ;
536+ assert_eq ! (
537+ GraphNodeType :: from_raw( raw) ,
538+ GraphNodeType :: KernelInvocation
539+ ) ;
540+ assert_eq ! ( GraphNodeType :: from_raw( raw) . to_raw( ) , raw) ;
541+ }
542+
543+ #[ cfg( reserved_graph_node_16) ]
544+ #[ test]
545+ fn reserved_node_round_trip ( ) {
546+ let raw = CUgraphNodeType :: CU_GRAPH_NODE_TYPE_RESERVED_16 ;
547+ assert_eq ! ( GraphNodeType :: from_raw( raw) , GraphNodeType :: Reserved16 ) ;
548+ assert_eq ! ( GraphNodeType :: from_raw( raw) . to_raw( ) , raw) ;
549+ }
550+ }
0 commit comments