peon/src/peon/stdlib/builtins/comparisons.pn

100 lines
1.8 KiB
Plaintext
Raw Normal View History

2022-10-17 11:28:54 +02:00
# Comparison operators
import values;
2022-10-17 11:28:54 +02:00
operator `is`*[T: any](a, b: T): bool {
#pragma[magic: "Identity", pure]
}
operator `>`*[T: UnsignedInteger](a, b: T): bool {
2022-10-17 11:28:54 +02:00
#pragma[magic: "GreaterThan", pure]
}
operator `<`*[T: UnsignedInteger](a, b: T): bool {
2022-10-17 11:28:54 +02:00
#pragma[magic: "LessThan", pure]
}
operator `==`*[T: Number | inf | bool](a, b: T): bool {
2022-10-17 11:28:54 +02:00
#pragma[magic: "Equal", pure]
}
2022-12-05 12:06:24 +01:00
operator `!=`*[T: Number | inf](a, b: T): bool {
2022-10-17 11:28:54 +02:00
#pragma[magic: "NotEqual", pure]
}
operator `>=`*[T: UnsignedInteger](a, b: T): bool {
2022-10-17 11:28:54 +02:00
#pragma[magic: "GreaterOrEqual", pure]
}
operator `<=`*[T: UnsignedInteger](a, b: T): bool {
2022-10-17 11:28:54 +02:00
#pragma[magic: "LessOrEqual", pure]
}
operator `>`*[T: SignedInteger](a, b: T): bool {
#pragma[magic: "SignedGreaterThan", pure]
}
operator `<`*[T: SignedInteger](a, b: T): bool {
#pragma[magic: "SignedLessThan", pure]
}
operator `>=`*[T: SignedInteger](a, b: T): bool {
#pragma[magic: "SignedGreaterOrEqual", pure]
}
operator `<=`*[T: SignedInteger](a, b: T): bool {
#pragma[magic: "SignedLessOrEqual", pure]
}
operator `>`*(a, b: float64): bool {
#pragma[magic: "Float64GreaterThan", pure]
}
operator `<`*(a, b: float64): bool {
#pragma[magic: "Float64LessThan", pure]
}
operator `>=`*(a, b: float64): bool {
#pragma[magic: "Float64GreaterOrEqual", pure]
}
operator `<=`*(a, b: float64): bool {
#pragma[magic: "Float64LessOrEqual", pure]
}
operator `>`*(a, b: float32): bool {
#pragma[magic: "Float32GreaterThan", pure]
}
operator `<`*(a, b: float32): bool {
#pragma[magic: "Float32LessThan", pure]
}
operator `>=`*(a, b: float32): bool {
#pragma[magic: "Float32GreaterOrEqual", pure]
}
operator `<=`*(a, b: float32): bool {
#pragma[magic: "Float32LessOrEqual", pure]
}
2022-12-05 12:06:24 +01:00