aboutsummaryrefslogtreecommitdiff
path: root/include/version_spec.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/version_spec.h')
-rw-r--r--include/version_spec.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/version_spec.h b/include/version_spec.h
new file mode 100644
index 0000000..995d24a
--- /dev/null
+++ b/include/version_spec.h
@@ -0,0 +1,21 @@
+#ifndef SPM_VERSION_SPEC_H
+#define SPM_VERSION_SPEC_H
+
+#define VERSION_OPERATORS " ~!=<>"
+#define VERSION_NOOP 1 << 0
+#define VERSION_EQ 1 << 1
+#define VERSION_NE 1 << 2
+#define VERSION_GT 1 << 3
+#define VERSION_LT 1 << 4
+#define VERSION_COMPAT 1 << 5
+
+// version_spec.c
+char *version_suffix_get_alpha(char *str);
+char *version_suffix_get_modifier(char *str);
+int64_t version_suffix_modifier_calc(char *str);
+int version_suffix_alpha_calc(char *str);
+int64_t version_from(const char *version_str);
+int version_spec_from(const char *op);
+ManifestPackage **find_by_spec(Manifest *manifest, const char *name, const char *op, const char *version_str);
+
+#endif //SPM_VERSION_SPEC_H