pub type pm_hash_pattern_node_t = pm_hash_pattern_node;Expand description
HashPatternNode
Represents a hash pattern in pattern matching.
foo => { a: 1, b: 2 }
^^^^^^^^^^^^^^ foo => { a: 1, b: 2, **c }
^^^^^^^^^^^^^^^^^^^ foo => Bar[a: 1, b: 2]
^^^^^^^^^^^^^^^ foo in { a: 1, b: 2 }
^^^^^^^^^^^^^^Type: ::PM_HASH_PATTERN_NODE
@extends pm_node_t
Aliased Type§
#[repr(C)]pub struct pm_hash_pattern_node_t {
pub base: pm_node,
pub constant: *mut pm_node,
pub elements: pm_node_list,
pub rest: *mut pm_node,
pub opening_loc: pm_location_t,
pub closing_loc: pm_location_t,
}Fields§
§base: pm_nodeThe embedded base node.
constant: *mut pm_nodeHashPatternNode#constant
Represents the optional constant preceding the Hash.
foo => Bar[a: 1, b: 2]
^^^ foo => Bar::Baz[a: 1, b: 2]
^^^^^^^^elements: pm_node_listHashPatternNode#elements
Represents the explicit named hash keys and values.
foo => { a: 1, b:, ** }
^^^^^^^^rest: *mut pm_nodeHashPatternNode#rest
Represents the rest of the Hash keys and values. This can be named, unnamed, or explicitly forbidden via **nil, this last one results in a NoKeywordsParameterNode.
foo => { a: 1, b:, **c }
^^^ foo => { a: 1, b:, ** }
^^ foo => { a: 1, b:, **nil }
^^^^^opening_loc: pm_location_tHashPatternNode#opening_loc
The location of the opening brace.
foo => { a: 1 }
^ foo => Bar[a: 1]
^closing_loc: pm_location_tHashPatternNode#closing_loc
The location of the closing brace.
foo => { a: 1 }
^ foo => Bar[a: 1]
^