| 1022 | } |
| 1023 | |
| 1024 | lbug_state lbug_node_val_get_property_name_at(lbug_value* node_val, uint64_t index, |
| 1025 | char** out_result) { |
| 1026 | auto logical_type_id = static_cast<Value*>(node_val->_value)->getDataType().getLogicalTypeID(); |
| 1027 | if (logical_type_id != LogicalTypeID::NODE) { |
| 1028 | return LbugError; |
| 1029 | } |
| 1030 | try { |
| 1031 | std::string property_name = |
| 1032 | NodeVal::getPropertyName(static_cast<Value*>(node_val->_value), index); |
| 1033 | if (property_name.empty()) { |
| 1034 | return LbugError; |
| 1035 | } |
| 1036 | *out_result = convertToOwnedCString(property_name); |
| 1037 | } catch (Exception& e) { |
| 1038 | return LbugError; |
| 1039 | } |
| 1040 | return LbugSuccess; |
| 1041 | } |
| 1042 | |
| 1043 | lbug_state lbug_node_val_get_property_value_at(lbug_value* node_val, uint64_t index, |
| 1044 | lbug_value* out_value) { |