summaryrefslogtreecommitdiff
path: root/slips/src/app/Marina/Domain/Range.cs
diff options
context:
space:
mode:
Diffstat (limited to 'slips/src/app/Marina/Domain/Range.cs')
-rw-r--r--slips/src/app/Marina/Domain/Range.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/slips/src/app/Marina/Domain/Range.cs b/slips/src/app/Marina/Domain/Range.cs
new file mode 100644
index 0000000..4b76b25
--- /dev/null
+++ b/slips/src/app/Marina/Domain/Range.cs
@@ -0,0 +1,32 @@
+using System;
+using Marina.Domain.Interfaces;
+
+namespace Marina.Domain {
+ public class Range< T > : IRange< T > where T : IComparable< T > {
+ private readonly T start;
+ private readonly T end;
+
+ public Range( T start, T end ) {
+ if ( start.CompareTo( end ) <= 0 ) {
+ this.start = start;
+ this.end = end;
+ }
+ else {
+ this.start = end;
+ this.end = start;
+ }
+ }
+
+ public T Start() {
+ return start;
+ }
+
+ public T End() {
+ return end;
+ }
+
+ public bool Contains( T value ) {
+ return value.CompareTo( start ) >= 0 && value.CompareTo( end ) <= 0;
+ }
+ }
+} \ No newline at end of file