3 #ifndef RUDIMENTS_LINKEDLISTUTIL_H
4 #define RUDIMENTS_LINKEDLISTUTIL_H
6 #include <rudiments/charstring.h>
7 #include <rudiments/stdio.h>
8 #include <rudiments/private/rudimentsinlines.h>
13 RUDIMENTS_TEMPLATE_INLINE
14 int32_t _linkedlistutil_compare(
char *value1,
char *value2) {
18 RUDIMENTS_TEMPLATE_INLINE
19 int32_t _linkedlistutil_compare(
const char *value1,
const char *value2) {
23 template <
class valuetype>
24 RUDIMENTS_TEMPLATE_INLINE
25 int32_t _linkedlistutil_compare(valuetype value1, valuetype value2) {
28 }
else if (value1==value2) {
35 RUDIMENTS_TEMPLATE_INLINE
36 void _linkedlistutil_print(
const char *value) {
37 stdoutput.
printf(
"%s",value);
40 RUDIMENTS_TEMPLATE_INLINE
41 void _linkedlistutil_print(
char *value) {
42 stdoutput.
printf(
"%s",value);
45 RUDIMENTS_TEMPLATE_INLINE
46 void _linkedlistutil_print(
char value) {
47 stdoutput.
printf(
"%c",value);
50 RUDIMENTS_TEMPLATE_INLINE
51 void _linkedlistutil_print(int16_t value) {
52 stdoutput.
printf(
"%hd",value);
55 RUDIMENTS_TEMPLATE_INLINE
56 void _linkedlistutil_print(int32_t value) {
57 stdoutput.
printf(
"%d",(
int)value);
60 RUDIMENTS_TEMPLATE_INLINE
61 void _linkedlistutil_print(int64_t value) {
62 #ifdef RUDIMENTS_HAVE_LONG_LONG
63 stdoutput.
printf(
"%lld",(
long long)value);
65 stdoutput.
printf(
"%ld",(
long)value);
69 RUDIMENTS_TEMPLATE_INLINE
70 void _linkedlistutil_print(
unsigned const char *value) {
71 stdoutput.
printf(
"%s",value);
74 RUDIMENTS_TEMPLATE_INLINE
75 void _linkedlistutil_print(
unsigned char *value) {
76 stdoutput.
printf(
"%s",value);
79 RUDIMENTS_TEMPLATE_INLINE
80 void _linkedlistutil_print(
unsigned char value) {
81 stdoutput.
printf(
"%c",value);
84 RUDIMENTS_TEMPLATE_INLINE
85 void _linkedlistutil_print(uint16_t value) {
86 stdoutput.
printf(
"%hd",value);
89 RUDIMENTS_TEMPLATE_INLINE
90 void _linkedlistutil_print(uint32_t value) {
91 stdoutput.
printf(
"%d",(
unsigned int)value);
94 RUDIMENTS_TEMPLATE_INLINE
95 void _linkedlistutil_print(uint64_t value) {
96 #ifdef RUDIMENTS_HAVE_LONG_LONG
97 stdoutput.
printf(
"%lld",(
unsigned long long)value);
99 stdoutput.
printf(
"%ld",(
unsigned long)value);
103 RUDIMENTS_TEMPLATE_INLINE
104 void _linkedlistutil_print(
float value) {
105 stdoutput.
printf(
"%f",value);
108 RUDIMENTS_TEMPLATE_INLINE
109 void _linkedlistutil_print(
double value) {
110 stdoutput.
printf(
"%f",value);
113 template <
class valuetype>
114 RUDIMENTS_TEMPLATE_INLINE
115 void _linkedlistutil_print(valuetype value) {
116 stdoutput.
printf(
"%p",value);
size_t printf(const char *format,...)
static int32_t compare(const char *str1, const char *str2)