mirror of
				https://github.com/theoludwig/libcproject.git
				synced 2025-05-21 23:21:15 +02:00 
			
		
		
		
	docs: add @since to know when a structure/function was added
				
					
				
			This commit is contained in:
		| @@ -6,18 +6,38 @@ | ||||
|  | ||||
| #define ARRAY_LIST_INITIAL_CAPACITY 10 | ||||
|  | ||||
| /** | ||||
|  * @brief A dynamic array implementation. | ||||
|  * @since v1.2.0 | ||||
|  */ | ||||
| struct array_list { | ||||
|   void** data; | ||||
|   size_t size; | ||||
|   size_t capacity; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * @brief Initializes a new array list. | ||||
|  * @since v1.2.0 | ||||
|  */ | ||||
| struct array_list* array_list_initialization(); | ||||
|  | ||||
| /** | ||||
|  * @brief Adds an element to the end of the array list. | ||||
|  * @since v1.2.0 | ||||
|  */ | ||||
| void array_list_add(struct array_list* list, void* element); | ||||
|  | ||||
| /** | ||||
|  * @brief Removes an element from the array list. | ||||
|  * @since v1.2.0 | ||||
|  */ | ||||
| void array_list_remove(struct array_list* list, size_t index); | ||||
|  | ||||
| /** | ||||
|  * @brief Gets an element from the array list. | ||||
|  * @since v1.2.0 | ||||
|  */ | ||||
| void* array_list_get(struct array_list* list, size_t index); | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  * | ||||
|  * @param string | ||||
|  * @param character | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void character_append(char* string, char character); | ||||
|  | ||||
| @@ -21,6 +22,7 @@ void character_append(char* string, char character); | ||||
|  * @param string | ||||
|  * @param character | ||||
|  * @param index | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void character_append_at(char* string, const char character, const size_t index); | ||||
|  | ||||
| @@ -29,6 +31,7 @@ void character_append_at(char* string, const char character, const size_t index) | ||||
|  * | ||||
|  * @param character | ||||
|  * @return const char | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char character_to_upper(const char character); | ||||
|  | ||||
| @@ -37,6 +40,7 @@ char character_to_upper(const char character); | ||||
|  * | ||||
|  * @param character | ||||
|  * @return const char | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char character_to_lower(const char character); | ||||
|  | ||||
| @@ -46,6 +50,7 @@ char character_to_lower(const char character); | ||||
|  * @param string1 | ||||
|  * @param string2 | ||||
|  * @return true if the character is a digit, false otherwise | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| bool character_get_is_digit(const char character); | ||||
|  | ||||
| @@ -55,6 +60,7 @@ bool character_get_is_digit(const char character); | ||||
|  * | ||||
|  * @param character | ||||
|  * @return char | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| unsigned char character_get_alphabet_position(const char character); | ||||
|  | ||||
|   | ||||
| @@ -9,20 +9,79 @@ | ||||
| #include "stdbool.h" | ||||
| #include "string.h" | ||||
|  | ||||
| /** | ||||
|  * @brief Convert a character to a string. | ||||
|  * | ||||
|  * @param character | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* convert_character_to_string(const char character); | ||||
|  | ||||
| /** | ||||
|  * @brief Convert a character to a digit. | ||||
|  * | ||||
|  * @param character | ||||
|  * @return char | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char convert_character_to_digit(const char character); | ||||
|  | ||||
| /** | ||||
|  * @brief Convert a digit to a character. | ||||
|  * | ||||
|  * @param digit | ||||
|  * @return char | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char convert_digit_to_character(const char digit); | ||||
|  | ||||
| /** | ||||
|  * @brief Convert a string to a number. | ||||
|  * | ||||
|  * @param string | ||||
|  * @return long long | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| long long convert_string_to_number(const char* string); | ||||
|  | ||||
| /** | ||||
|  * @brief Convert a number to a string. | ||||
|  * | ||||
|  * @param integer | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* convert_number_to_string(const long long integer); | ||||
|  | ||||
| /** | ||||
|  * @brief Convert a number (base 10) to a string with a specific base. | ||||
|  * | ||||
|  * @param number | ||||
|  * @param base | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* convert_number_from_base_10_to_base(unsigned long long number, unsigned int base); | ||||
|  | ||||
| /** | ||||
|  * @brief Convert a number with a specific base to a number base 10. | ||||
|  * | ||||
|  * @param number | ||||
|  * @param base | ||||
|  * @return int | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| int convert_number_from_base_to_base_10(char* number, unsigned int base); | ||||
|  | ||||
| /** | ||||
|  * @brief Convert a number with a specific base to a number of specific base. | ||||
|  * | ||||
|  * @param number | ||||
|  * @param base_from | ||||
|  * @param base_target | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* convert_number_from_base_to_another(char* number, int base_from, int base_target); | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -21,6 +21,7 @@ | ||||
|  * @return int | ||||
|  * @retval -1 if the file does not exist | ||||
|  * @retval 0 for success | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| int filesystem_read(char *path, char **file_content, off_t *file_size); | ||||
|  | ||||
| @@ -33,6 +34,7 @@ int filesystem_read(char *path, char **file_content, off_t *file_size); | ||||
|  * @return int | ||||
|  * @retval -1 if errors | ||||
|  * @retval 0 for success | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| int filesystem_write(char *path, char *file_content, off_t file_size); | ||||
|  | ||||
| @@ -41,6 +43,7 @@ int filesystem_write(char *path, char *file_content, off_t file_size); | ||||
|  * | ||||
|  * @param path | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char *filesystem_get_mimetype(char *path); | ||||
|  | ||||
|   | ||||
| @@ -6,27 +6,59 @@ | ||||
|  | ||||
| #include "stack.h" | ||||
|  | ||||
| /** | ||||
|  * @brief Linked list data structure. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct linked_list { | ||||
|   struct linked_list_node *head; | ||||
|  | ||||
|   size_t length; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * @brief Linked list node data structure. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct linked_list_node { | ||||
|   void *data; | ||||
|   struct linked_list_node *next; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * @brief Linked list initialization. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct linked_list *linked_list_initialization(); | ||||
|  | ||||
| /** | ||||
|  * @brief Add a new node in the head of the linked list. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct linked_list_node *linked_list_add_in_head(struct linked_list *list, void *new_value); | ||||
|  | ||||
| /** | ||||
|  * @brief Delete node in the head of the linked list. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void linked_list_delete_in_head(struct linked_list *list); | ||||
|  | ||||
| /** | ||||
|  * @brief Add a new node in the tail of the linked list. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct linked_list_node *linked_list_add_after_last(struct linked_list *list, void *new_data); | ||||
|  | ||||
| /** | ||||
|  * @brief Reverse the linked list by creating a new one. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct linked_list *linked_list_reverse(struct linked_list *list); | ||||
|  | ||||
| /** | ||||
|  * @brief Reverse the linked list by mutating it. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void linked_list_reverse_mutate(struct linked_list *list); | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -5,10 +5,32 @@ | ||||
|  | ||||
| #include <stdbool.h> | ||||
|  | ||||
| /** | ||||
|  * @brief Verify that 2 numbers are equal. | ||||
|  * | ||||
|  * @param number1 | ||||
|  * @param number2 | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| bool mathematics_equals(const float number1, const float number2); | ||||
|  | ||||
| /** | ||||
|  * @brief Get the absolute value of a number. | ||||
|  * | ||||
|  * @param number | ||||
|  * @return unsigned long long | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| unsigned long long mathematics_absolute_value(const long long number); | ||||
|  | ||||
| /** | ||||
|  * @brief Calculates the power of a number. | ||||
|  * | ||||
|  * @param base | ||||
|  * @param exponent | ||||
|  * @return unsigned long long | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| unsigned long long mathematics_pow(unsigned long long base, unsigned long long exponent); | ||||
|  | ||||
| /** | ||||
| @@ -17,11 +39,26 @@ unsigned long long mathematics_pow(unsigned long long base, unsigned long long e | ||||
|  * @param number | ||||
|  * @param nth_root | ||||
|  * @return float | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| float mathematics_root(float number, unsigned int nth_root); | ||||
|  | ||||
| /** | ||||
|  * @brief Calculates the square root of a number using Heron's method. | ||||
|  * | ||||
|  * @param number | ||||
|  * @return float | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| float mathematics_square_root(float number); | ||||
|  | ||||
| /** | ||||
|  * @brief Calculates the factorial of a number. | ||||
|  * | ||||
|  * @param number | ||||
|  * @return unsigned long long | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| unsigned long long mathematics_factorial(unsigned long long number); | ||||
|  | ||||
| #endif | ||||
|   | ||||
							
								
								
									
										21
									
								
								lib/queue.h
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								lib/queue.h
									
									
									
									
									
								
							| @@ -4,21 +4,40 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| // FIFO = First In First Out | ||||
| /** | ||||
|  * @brief Queue structure => FIFO (First In First Out). | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct queue { | ||||
|   struct queue_node *first; | ||||
|   size_t length; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * @brief Queue node structure. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct queue_node { | ||||
|   void *data; | ||||
|   struct queue_node *next; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * @brief Queue initialization. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct queue *queue_initialization(); | ||||
|  | ||||
| /** | ||||
|  * @brief Push data to queue. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void queue_push(struct queue *queue, void *data); | ||||
|  | ||||
| /** | ||||
|  * @brief Pop data from queue. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void *queue_pop(struct queue *queue); | ||||
|  | ||||
| #endif | ||||
|   | ||||
							
								
								
									
										21
									
								
								lib/stack.h
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								lib/stack.h
									
									
									
									
									
								
							| @@ -4,21 +4,40 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| // LIFO = Last In First Out | ||||
| /** | ||||
|  * @brief Stack structure => LIFO (Last In First Out). | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct stack { | ||||
|   struct stack_node *first; | ||||
|   size_t length; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * @brief Stack node structure. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct stack_node { | ||||
|   void *data; | ||||
|   struct stack_node *next; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * @brief Stack initialization. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| struct stack *stack_initialization(); | ||||
|  | ||||
| /** | ||||
|  * @brief Push data to stack. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void stack_push(struct stack *stack, void *data); | ||||
|  | ||||
| /** | ||||
|  * @brief Pop data from stack. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void *stack_pop(struct stack *stack); | ||||
|  | ||||
| #endif | ||||
|   | ||||
							
								
								
									
										23
									
								
								lib/string.h
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								lib/string.h
									
									
									
									
									
								
							| @@ -14,6 +14,7 @@ | ||||
|  * | ||||
|  * @param string | ||||
|  * @return size_t | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| size_t string_get_length(const char* string); | ||||
|  | ||||
| @@ -22,6 +23,7 @@ size_t string_get_length(const char* string); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_to_uppercase(char* string); | ||||
|  | ||||
| @@ -30,6 +32,7 @@ char* string_to_uppercase(char* string); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_to_lowercase(char* string); | ||||
|  | ||||
| @@ -40,6 +43,7 @@ char* string_to_lowercase(char* string); | ||||
|  * @param search_value A character search value. | ||||
|  * @param replace_value A character containing the text to replace for match. | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_replace(char* string, char search, char replace); | ||||
|  | ||||
| @@ -48,6 +52,7 @@ char* string_replace(char* string, char search, char replace); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_trim_start(char* string); | ||||
|  | ||||
| @@ -56,6 +61,7 @@ char* string_trim_start(char* string); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_trim_end(char* string); | ||||
|  | ||||
| @@ -64,6 +70,7 @@ char* string_trim_end(char* string); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_trim(char* string); | ||||
|  | ||||
| @@ -72,6 +79,7 @@ char* string_trim(char* string); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_copy(const char* string); | ||||
|  | ||||
| @@ -80,6 +88,7 @@ char* string_copy(const char* string); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_capitalize(char* string); | ||||
|  | ||||
| @@ -89,6 +98,7 @@ char* string_capitalize(char* string); | ||||
|  * @param string | ||||
|  * @param character | ||||
|  * @return size_t | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| size_t string_total_occurrences_of_character(char* string, char character); | ||||
|  | ||||
| @@ -97,6 +107,7 @@ size_t string_total_occurrences_of_character(char* string, char character); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_reverse(const char* string); | ||||
|  | ||||
| @@ -106,6 +117,7 @@ char* string_reverse(const char* string); | ||||
|  * @param string1 | ||||
|  * @param string2 | ||||
|  * @return true if the strings are equals, false otherwise. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| bool string_equals(const char* string1, const char* string2); | ||||
|  | ||||
| @@ -114,6 +126,7 @@ bool string_equals(const char* string1, const char* string2); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return true if the string is a integer, false otherwise. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| bool string_get_is_integer(const char* string); | ||||
|  | ||||
| @@ -123,6 +136,7 @@ bool string_get_is_integer(const char* string); | ||||
|  * @param string | ||||
|  * @param separator | ||||
|  * @return char** | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char** string_split(const char* string, char separator, size_t* result_size); | ||||
|  | ||||
| @@ -132,6 +146,7 @@ char** string_split(const char* string, char separator, size_t* result_size); | ||||
|  * @param array | ||||
|  * @param separator | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_join(char** array, const char separator, size_t array_length); | ||||
|  | ||||
| @@ -141,6 +156,7 @@ char* string_join(char** array, const char separator, size_t array_length); | ||||
|  * @param string1 | ||||
|  * @param string2 | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_concatenate(char* string1, char* string2); | ||||
|  | ||||
| @@ -149,6 +165,7 @@ char* string_concatenate(char* string1, char* string2); | ||||
|  * | ||||
|  * @param string | ||||
|  * @return true if string contains only unique characters, false otherwise. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| bool string_get_has_unique_characters(const char* string); | ||||
|  | ||||
| @@ -159,6 +176,7 @@ bool string_get_has_unique_characters(const char* string); | ||||
|  * @param index_start | ||||
|  * @param index_end | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_substring(const char* string, size_t index_start, size_t index_end); | ||||
|  | ||||
| @@ -168,6 +186,7 @@ char* string_substring(const char* string, size_t index_start, size_t index_end) | ||||
|  * @param string | ||||
|  * @param substring | ||||
|  * @return true if the string contains the substring, false otherwise. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| bool string_get_is_substring(const char* string, const char* substring); | ||||
|  | ||||
| @@ -176,6 +195,7 @@ bool string_get_is_substring(const char* string, const char* substring); | ||||
|  * | ||||
|  * @param integer | ||||
|  * @return char* example: string_get_formatted_number(1000, " ") => "1 000" | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_get_formatted_number(const long long number, char* separator); | ||||
|  | ||||
| @@ -185,6 +205,7 @@ char* string_get_formatted_number(const long long number, char* separator); | ||||
|  * @param string | ||||
|  * @param character | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* string_get_last_occurence_of_character(const char* string, char character); | ||||
|  | ||||
| @@ -194,6 +215,7 @@ char* string_get_last_occurence_of_character(const char* string, char character) | ||||
|  * @param string | ||||
|  * @param prefix | ||||
|  * @return true if the string starts with the substring, false otherwise. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| bool string_starts_with(const char* string, const char* prefix); | ||||
|  | ||||
| @@ -203,6 +225,7 @@ bool string_starts_with(const char* string, const char* prefix); | ||||
|  * @param string | ||||
|  * @param prefix | ||||
|  * @return true if the string ends with the substring, false otherwise. | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| bool string_ends_with(const char* string, const char* prefix); | ||||
|  | ||||
|   | ||||
| @@ -16,27 +16,95 @@ | ||||
|  * @brief Read a line from stdin. | ||||
|  * | ||||
|  * @return char* | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| char* terminal_input(); | ||||
|  | ||||
| /** | ||||
|  * @brief Print an array. | ||||
|  * | ||||
|  * @param array | ||||
|  * @param array_size | ||||
|  * @param element_size | ||||
|  * @param print_element | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_array(void* array, size_t array_size, size_t element_size, void (*print_element)(void*)); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a int. | ||||
|  * | ||||
|  * @param value | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_int(void* value); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a long. | ||||
|  * | ||||
|  * @param value | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_long(void* value); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a unsigned long. | ||||
|  * | ||||
|  * @param value | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_unsigned_long(void* value); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a char. | ||||
|  * | ||||
|  * @param value | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_char(void* value); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a string. | ||||
|  * | ||||
|  * @param value | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_string(void* value); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a stack. | ||||
|  * | ||||
|  * @param stack | ||||
|  * @param print_element | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_stack(struct stack* stack, void (*print_element)(void*)); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a queue. | ||||
|  * | ||||
|  * @param queue | ||||
|  * @param print_element | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_queue(struct queue* queue, void (*print_element)(void*)); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a linked list. | ||||
|  * | ||||
|  * @param linked_list | ||||
|  * @param print_element | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_linked_list(struct linked_list* linked_list, void (*print_element)(void*)); | ||||
|  | ||||
| /** | ||||
|  * @brief Print a dictionary. | ||||
|  * | ||||
|  * @param dictionary | ||||
|  * @param print_element | ||||
|  * @since v1.0.0 | ||||
|  */ | ||||
| void terminal_print_dictionary(struct dictionary* dictionary, void (*print_element)(void*)); | ||||
|  | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user