(options: { minimum: number; maximum: number }): (self: number) => number
(self: number, options: { minimum: number; maximum: number }): numberRestricts the given number to be within the range specified by the minimum and maximum values.
When to use
Use to force a number into an inclusive range.
Details
- If the
numberis less than theminimumvalue, the function returns theminimumvalue. - If the
numberis greater than themaximumvalue, the function returns themaximumvalue. - Otherwise, it returns the original
number.
Example (Clamping to a range)
import { Number } from "effect"
import * as assert from "node:assert"
const clamp = Number.clamp({ minimum: 1, maximum: 5 })
assert.equal(clamp(3), 3)
assert.equal(clamp(0), 1)
assert.equal(clamp(6), 5)export const const clamp: {
(options: {
minimum: number
maximum: number
}): (self: number) => number
(
self: number,
options: {
minimum: number
maximum: number
}
): number
}
Restricts the given number to be within the range specified by the minimum and maximum values.
When to use
Use to force a number into an inclusive range.
Details
- If the
number is less than the minimum value, the function returns the minimum value.
- If the
number is greater than the maximum value, the function returns the maximum value.
- Otherwise, it returns the original
number.
Example (Clamping to a range)
import { Number } from "effect"
import * as assert from "node:assert"
const clamp = Number.clamp({ minimum: 1, maximum: 5 })
assert.equal(clamp(3), 3)
assert.equal(clamp(0), 1)
assert.equal(clamp(6), 5)
clamp: {
(options: {
minimum: number
maximum: number
}
options: {
minimum: numberminimum: number
maximum: numbermaximum: number
}): (self: numberself: number) => number
(self: numberself: number, options: {
minimum: number
maximum: number
}
options: {
minimum: numberminimum: number
maximum: numbermaximum: number
}): number
} = import orderorder.const clamp: <A>(O: Order<A>) => {
(options: { minimum: A; maximum: A }): (
self: A
) => A
(
self: A,
options: { minimum: A; maximum: A }
): A
}
Restricts a value between a minimum and a maximum according to the given order.
When to use
Use when you need to clamp a value to an inclusive range according to an
Order.
Details
Returns the value itself when it is between minimum and maximum, inclusive.
Values below the range return minimum, and values above the range return
maximum. The minimum must be less than or equal to the maximum according to
the order.
Example (Clamping values)
import { Order } from "effect"
const clamp = Order.clamp(Order.Number)({ minimum: 1, maximum: 5 })
console.log(clamp(3)) // 3
console.log(clamp(0)) // 1
console.log(clamp(6)) // 5
clamp(const Order: order.Order<number>Order instance for number values.
When to use
Use when you need to sort or compare numbers through APIs that accept an
ordering instance.
Example (Comparing numbers)
import { Number } from "effect"
console.log(Number.Order(1, 2)) // -1
console.log(Number.Order(2, 1)) // 1
console.log(Number.Order(1, 1)) // 0
Order)