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(int32_t value) {
52 stdoutput.
printf(
"%d",(
int)value);
55 RUDIMENTS_TEMPLATE_INLINE
56 void _linkedlistutil_print(int16_t value) {
57 stdoutput.
printf(
"%hd",value);
60 RUDIMENTS_TEMPLATE_INLINE
61 void _linkedlistutil_print(int64_t value) {
62 stdoutput.
printf(
"%lld",(
long long)value);
65 RUDIMENTS_TEMPLATE_INLINE
66 void _linkedlistutil_print(
float value) {
67 stdoutput.
printf(
"%f",value);
70 RUDIMENTS_TEMPLATE_INLINE
71 void _linkedlistutil_print(
double value) {
72 stdoutput.
printf(
"%f",value);
75 template <
class valuetype>
76 RUDIMENTS_TEMPLATE_INLINE
77 void _linkedlistutil_print(valuetype value) {
78 stdoutput.
printf(
"%p",value);