* Refactor parser.c for better testability (#754) * Refactor rcl_yaml_param_parser for better testability Signed-off-by: Stephen Brawner <brawner@gmail.com> * Reorder parser.c to match parser.h Signed-off-by: Stephen Brawner <brawner@gmail.com> squash! Reorder parser.c to match parser.h * Refactor yaml_variant.c for deduplication Signed-off-by: Stephen Brawner <brawner@gmail.com> * ADD_VALUE_TO_SIMPLE_ARRAY for deduplication Signed-off-by: Stephen Brawner <brawner@gmail.com> * Remove fprintf Signed-off-by: Stephen Brawner <brawner@gmail.com> * PR Fixup Signed-off-by: Stephen Brawner <brawner@gmail.com> * Move headers to src directory Signed-off-by: Stephen Brawner <brawner@gmail.com> * PR Fixup Signed-off-by: Stephen Brawner <brawner@gmail.com> * Rebase #780 Signed-off-by: Stephen Brawner <brawner@gmail.com> * Missing includes Signed-off-by: Stephen Brawner <brawner@gmail.com>
This commit is contained in:
		
							parent
							
								
									6a137f1aba
								
							
						
					
					
						commit
						2c513aa0ed
					
				
					 14 changed files with 1929 additions and 1601 deletions
				
			
		
							
								
								
									
										79
									
								
								rcl_yaml_param_parser/src/impl/add_to_arrays.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								rcl_yaml_param_parser/src/impl/add_to_arrays.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
// Copyright 2018 Apex.AI, Inc.
 | 
			
		||||
//
 | 
			
		||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
// you may not use this file except in compliance with the License.
 | 
			
		||||
// You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
// Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// limitations under the License.
 | 
			
		||||
 | 
			
		||||
#ifndef IMPL__ADD_TO_ARRAYS_H_
 | 
			
		||||
#define IMPL__ADD_TO_ARRAYS_H_
 | 
			
		||||
 | 
			
		||||
#include <yaml.h>
 | 
			
		||||
 | 
			
		||||
#include "rcutils/types.h"
 | 
			
		||||
 | 
			
		||||
#include "./types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/visibility_control.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C"
 | 
			
		||||
{
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Add a value to a bool array. Create the array if it does not exist
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t add_val_to_bool_arr(
 | 
			
		||||
  rcl_bool_array_t * const val_array,
 | 
			
		||||
  bool * value,
 | 
			
		||||
  const rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Add a value to an integer array. Create the array if it does not exist
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t add_val_to_int_arr(
 | 
			
		||||
  rcl_int64_array_t * const val_array,
 | 
			
		||||
  int64_t * value,
 | 
			
		||||
  const rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Add a value to a double array. Create the array if it does not exist
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t add_val_to_double_arr(
 | 
			
		||||
  rcl_double_array_t * const val_array,
 | 
			
		||||
  double * value,
 | 
			
		||||
  const rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Add a value to a string array. Create the array if it does not exist
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t add_val_to_string_arr(
 | 
			
		||||
  rcutils_string_array_t * const val_array,
 | 
			
		||||
  char * value,
 | 
			
		||||
  const rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// TODO (anup.pemmaiah): Support byte array
 | 
			
		||||
///
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif  // IMPL__ADD_TO_ARRAYS_H_
 | 
			
		||||
							
								
								
									
										68
									
								
								rcl_yaml_param_parser/src/impl/namespace.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								rcl_yaml_param_parser/src/impl/namespace.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,68 @@
 | 
			
		|||
// Copyright 2018 Apex.AI, Inc.
 | 
			
		||||
//
 | 
			
		||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
// you may not use this file except in compliance with the License.
 | 
			
		||||
// You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
// Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// limitations under the License.
 | 
			
		||||
 | 
			
		||||
#ifndef IMPL__NAMESPACE_H_
 | 
			
		||||
#define IMPL__NAMESPACE_H_
 | 
			
		||||
 | 
			
		||||
#include <yaml.h>
 | 
			
		||||
 | 
			
		||||
#include "rcutils/types.h"
 | 
			
		||||
 | 
			
		||||
#include "./types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/visibility_control.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C"
 | 
			
		||||
{
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Add name to namespace tracker
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t add_name_to_ns(
 | 
			
		||||
  namespace_tracker_t * ns_tracker,
 | 
			
		||||
  const char * name,
 | 
			
		||||
  const namespace_type_t namespace_type,
 | 
			
		||||
  rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Remove name from namespace tracker
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t rem_name_from_ns(
 | 
			
		||||
  namespace_tracker_t * ns_tracker,
 | 
			
		||||
  const namespace_type_t namespace_type,
 | 
			
		||||
  rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Replace namespace in namespace tracker
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t replace_ns(
 | 
			
		||||
  namespace_tracker_t * ns_tracker,
 | 
			
		||||
  char * const new_ns,
 | 
			
		||||
  const uint32_t new_ns_count,
 | 
			
		||||
  const namespace_type_t namespace_type,
 | 
			
		||||
  rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif  // IMPL__NAMESPACE_H_
 | 
			
		||||
							
								
								
									
										47
									
								
								rcl_yaml_param_parser/src/impl/node_params.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								rcl_yaml_param_parser/src/impl/node_params.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
// Copyright 2018 Apex.AI, Inc.
 | 
			
		||||
//
 | 
			
		||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
// you may not use this file except in compliance with the License.
 | 
			
		||||
// You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
// Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// limitations under the License.
 | 
			
		||||
 | 
			
		||||
#ifndef IMPL__NODE_PARAMS_H_
 | 
			
		||||
#define IMPL__NODE_PARAMS_H_
 | 
			
		||||
 | 
			
		||||
#include "rcl_yaml_param_parser/types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/visibility_control.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C"
 | 
			
		||||
{
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Create rcl_node_params_t structure
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t node_params_init(
 | 
			
		||||
  rcl_node_params_t * node_params,
 | 
			
		||||
  const rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Finalize rcl_node_params_t structure
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
void rcl_yaml_node_params_fini(
 | 
			
		||||
  rcl_node_params_t * node_params,
 | 
			
		||||
  const rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif  // IMPL__NODE_PARAMS_H_
 | 
			
		||||
							
								
								
									
										94
									
								
								rcl_yaml_param_parser/src/impl/parse.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								rcl_yaml_param_parser/src/impl/parse.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,94 @@
 | 
			
		|||
// Copyright 2018 Apex.AI, Inc.
 | 
			
		||||
//
 | 
			
		||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
// you may not use this file except in compliance with the License.
 | 
			
		||||
// You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
// Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// limitations under the License.
 | 
			
		||||
 | 
			
		||||
#ifndef IMPL__PARSE_H_
 | 
			
		||||
#define IMPL__PARSE_H_
 | 
			
		||||
 | 
			
		||||
#include <yaml.h>
 | 
			
		||||
 | 
			
		||||
#include "rcutils/types.h"
 | 
			
		||||
 | 
			
		||||
#include "./types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/visibility_control.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C"
 | 
			
		||||
{
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
void * get_value(
 | 
			
		||||
  const char * const value,
 | 
			
		||||
  yaml_scalar_style_t style,
 | 
			
		||||
  data_types_t * val_type,
 | 
			
		||||
  const rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t parse_value(
 | 
			
		||||
  const yaml_event_t event,
 | 
			
		||||
  const bool is_seq,
 | 
			
		||||
  const size_t node_idx,
 | 
			
		||||
  const size_t parameter_idx,
 | 
			
		||||
  data_types_t * seq_data_type,
 | 
			
		||||
  rcl_params_t * params_st);
 | 
			
		||||
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t parse_key(
 | 
			
		||||
  const yaml_event_t event,
 | 
			
		||||
  uint32_t * map_level,
 | 
			
		||||
  bool * is_new_map,
 | 
			
		||||
  size_t * node_idx,
 | 
			
		||||
  size_t * parameter_idx,
 | 
			
		||||
  namespace_tracker_t * ns_tracker,
 | 
			
		||||
  rcl_params_t * params_st);
 | 
			
		||||
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t parse_file_events(
 | 
			
		||||
  yaml_parser_t * parser,
 | 
			
		||||
  namespace_tracker_t * ns_tracker,
 | 
			
		||||
  rcl_params_t * params_st);
 | 
			
		||||
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t parse_value_events(
 | 
			
		||||
  yaml_parser_t * parser,
 | 
			
		||||
  const size_t node_idx,
 | 
			
		||||
  const size_t parameter_idx,
 | 
			
		||||
  rcl_params_t * params_st);
 | 
			
		||||
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t find_node(
 | 
			
		||||
  const char * node_name,
 | 
			
		||||
  rcl_params_t * param_st,
 | 
			
		||||
  size_t * node_idx);
 | 
			
		||||
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
rcutils_ret_t find_parameter(
 | 
			
		||||
  const size_t node_idx,
 | 
			
		||||
  const char * parameter_name,
 | 
			
		||||
  rcl_params_t * param_st,
 | 
			
		||||
  size_t * parameter_idx);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif  // IMPL__PARSE_H_
 | 
			
		||||
							
								
								
									
										72
									
								
								rcl_yaml_param_parser/src/impl/types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								rcl_yaml_param_parser/src/impl/types.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,72 @@
 | 
			
		|||
// Copyright 2018 Apex.AI, Inc.
 | 
			
		||||
//
 | 
			
		||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
// you may not use this file except in compliance with the License.
 | 
			
		||||
// You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
// Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// limitations under the License.
 | 
			
		||||
 | 
			
		||||
/// NOTE: Will allow a max YAML mapping depth of 5
 | 
			
		||||
/// map level 1 : Node name mapping
 | 
			
		||||
/// map level 2 : Params mapping
 | 
			
		||||
 | 
			
		||||
#ifndef IMPL__TYPES_H_
 | 
			
		||||
#define IMPL__TYPES_H_
 | 
			
		||||
 | 
			
		||||
#include <inttypes.h>
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C"
 | 
			
		||||
{
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define PARAMS_KEY "ros__parameters"
 | 
			
		||||
#define NODE_NS_SEPERATOR "/"
 | 
			
		||||
#define PARAMETER_NS_SEPERATOR "."
 | 
			
		||||
 | 
			
		||||
#define MAX_NUM_PARAMS_PER_NODE 512U
 | 
			
		||||
 | 
			
		||||
typedef enum yaml_map_lvl_e
 | 
			
		||||
{
 | 
			
		||||
  MAP_UNINIT_LVL = 0U,
 | 
			
		||||
  MAP_NODE_NAME_LVL = 1U,
 | 
			
		||||
  MAP_PARAMS_LVL = 2U,
 | 
			
		||||
} yaml_map_lvl_t;
 | 
			
		||||
 | 
			
		||||
/// Basic supported data types in the yaml file
 | 
			
		||||
typedef enum data_types_e
 | 
			
		||||
{
 | 
			
		||||
  DATA_TYPE_UNKNOWN = 0U,
 | 
			
		||||
  DATA_TYPE_BOOL = 1U,
 | 
			
		||||
  DATA_TYPE_INT64 = 2U,
 | 
			
		||||
  DATA_TYPE_DOUBLE = 3U,
 | 
			
		||||
  DATA_TYPE_STRING = 4U
 | 
			
		||||
} data_types_t;
 | 
			
		||||
 | 
			
		||||
typedef enum namespace_type_e
 | 
			
		||||
{
 | 
			
		||||
  NS_TYPE_NODE = 1U,
 | 
			
		||||
  NS_TYPE_PARAM = 2U
 | 
			
		||||
} namespace_type_t;
 | 
			
		||||
 | 
			
		||||
/// Keep track of node and parameter name spaces
 | 
			
		||||
typedef struct namespace_tracker_s
 | 
			
		||||
{
 | 
			
		||||
  char * node_ns;
 | 
			
		||||
  uint32_t num_node_ns;
 | 
			
		||||
  char * parameter_ns;
 | 
			
		||||
  uint32_t num_parameter_ns;
 | 
			
		||||
} namespace_tracker_t;
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif  // IMPL__TYPES_H_
 | 
			
		||||
							
								
								
									
										49
									
								
								rcl_yaml_param_parser/src/impl/yaml_variant.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								rcl_yaml_param_parser/src/impl/yaml_variant.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,49 @@
 | 
			
		|||
// Copyright 2018 Apex.AI, Inc.
 | 
			
		||||
//
 | 
			
		||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
// you may not use this file except in compliance with the License.
 | 
			
		||||
// You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
// Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// limitations under the License.
 | 
			
		||||
 | 
			
		||||
#ifndef IMPL__YAML_VARIANT_H_
 | 
			
		||||
#define IMPL__YAML_VARIANT_H_
 | 
			
		||||
 | 
			
		||||
#include "rcutils/allocator.h"
 | 
			
		||||
 | 
			
		||||
#include "./types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/types.h"
 | 
			
		||||
#include "rcl_yaml_param_parser/visibility_control.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C"
 | 
			
		||||
{
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Finalize an rcl_yaml_variant_t
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
void rcl_yaml_variant_fini(
 | 
			
		||||
  rcl_variant_t * param_var,
 | 
			
		||||
  const rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// Copy a yaml_variant_t from param_var to out_param_var
 | 
			
		||||
///
 | 
			
		||||
RCL_YAML_PARAM_PARSER_PUBLIC
 | 
			
		||||
RCUTILS_WARN_UNUSED
 | 
			
		||||
bool rcl_yaml_variant_copy(
 | 
			
		||||
  rcl_variant_t * out_param_var, const rcl_variant_t * param_var, rcutils_allocator_t allocator);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif  // IMPL__YAML_VARIANT_H_
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue