Wheefun I/O Library  0.0.5
Useful I/O Primitives.
wfio.h
Go to the documentation of this file.
1 /* WFIO - the Wheefun IO Library
2  Copyright (C) 2018 Phillip Kilgore
3 
4  This program is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program. If not, see <https://www.gnu.org/licenses/>.
16 
17  Additionally, you should have recieved a copy of the GNU Classpath
18  exception, which amends the license to generally permit linking against
19  the software provided herein.
20 */
21 
40 #ifndef WFIO_WFIO_H
41 #define WFIO_WFIO_H
42 
48 #define WFIO_VERSION_MAJOR 0
49 
55 #define WFIO_VERSION_MINOR 0
56 
62 #define WFIO_VERSION_PATCH 5
63 
64 /* Exact Comparison */
65 
75 #define WFIO_VERSION_EQ(MAJOR, MINOR)\
76  ((WFIO_VERSION_MAJOR == MAJOR) & (WFIO_VERSION_MINOR == MINOR))
77 
88 #define WFIO_VERSION_EQ3(MAJOR, MINOR, PATCH)\
89  ((WFIO_VERSION_MAJOR == MAJOR) & (WFIO_VERSION_MINOR == MINOR) &\
90  (WFIO_VERSION_PATCH == PATCH))
91 
92 
102 #define WFIO_VERSION_NE(MAJOR, MINOR)\
103  ((WFIO_VERSION_MAJOR != MAJOR) | (WFIO_VERSION_MINOR != MINOR))
104 
115 #define WFIO_VERSION_NE3(MAJOR, MINOR, PATCH)\
116  ((WFIO_VERSION_MAJOR != MAJOR) | (WFIO_VERSION_MINOR != MINOR) |\
117  (WFIO_VERSION_PATCH != PATCH))
118 
119 /* Ranged Functions */
120 
130 #define WFIO_VERSION_AT_LEAST(MAJOR, MINOR) (\
131  ((WFIO_VERSION_MAJOR > MAJOR)) | \
132  ((WFIO_VERSION_MAJOR == MAJOR) & (WFIO_VERSION_MINOR >= MINOR)))
133 
144 #define WFIO_VERSION_AT_LEAST3(MAJOR, MINOR, PATCH) (\
145  ((WFIO_VERSION_MAJOR > MAJOR)) | \
146  ((WFIO_VERSION_MAJOR == MAJOR) & (WFIO_VERSION_MINOR > MINOR)) | \
147  ((WFIO_VERSION_MAJOR == MAJOR) & (WFIO_VERSION_MINOR == MINOR) &\
148  (WFIO_VERSION_PATCH >= PATCH)))
149 
159 #define WFIO_VERSION_NO_GREATER(MAJOR, MINOR) (\
160  ((WFIO_VERSION_MAJOR < MAJOR)) | \
161  ((WFIO_VERSION_MAJOR == MAJOR) & (WFIO_VERSION_MINOR <= MINOR)))
162 
174 #define WFIO_VERSION_NO_GREATER3(MAJOR, MINOR, PATCH) (\
175  ((WFIO_VERSION_MAJOR < MAJOR)) | \
176  ((WFIO_VERSION_MAJOR == MAJOR) & (WFIO_VERSION_MINOR < MINOR)) | \
177  ((WFIO_VERSION_MAJOR == MAJOR) & (WFIO_VERSION_MINOR == MINOR) &\
178  (WFIO_VERSION_PATCH <= PATCH)))
179 
192 #define WFIO_VERSION_IN_RANGE(MINMAJ, MINMIN, MAXMAJ, MAXMIN) (\
193  WFIO_VERSION_AT_LEAST(MINMAJ, MINMIN) &\
194  WFIO_VERSION_NO_GREATER(MAXMAJ, MAXMIN))
195 
210 #define WFIO_VERSION_IN_RANGE3(MINMAJ, MINMIN, MINPATCH,\
211  MAXMAJ, MAXMIN, MAXPATCH) (\
212  WFIO_VERSION_AT_LEAST3(MINMAJ, MINMIN, MINPATCH) &\
213  WFIO_VERSION_NO_GREATER3(MAXMAJ, MAXMIN, MAXPATH))
214 
215 #ifdef __cplusplus
216 
219 namespace wfio {}
220 #endif
221 
222 #endif
The root namespace for WFIO.
Definition: bin.h:879