aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gleam/option.gleam23
-rw-r--r--src/gleam/uri.gleam9
2 files changed, 24 insertions, 8 deletions
diff --git a/src/gleam/option.gleam b/src/gleam/option.gleam
index 2c01b4a..c1a456e 100644
--- a/src/gleam/option.gleam
+++ b/src/gleam/option.gleam
@@ -157,3 +157,26 @@ pub fn then(option: Option(a), apply fun: fn(a) -> Option(b)) -> Option(b) {
None -> None
}
}
+
+/// Return the first value if it is Some, otherwise return the second value.
+///
+/// ## Examples
+///
+/// > or(Some(1), Some(2))
+/// Some(1)
+///
+/// > or(Some(1), None)
+/// Some(1)
+///
+/// > or(None, Some(2))
+/// Some(2)
+///
+/// > or(None, None)
+/// None
+///
+pub fn or(first: Option(a), second: Option(a)) -> Option(a) {
+ case first {
+ Some(_) -> first
+ None -> second
+ }
+}
diff --git a/src/gleam/uri.gleam b/src/gleam/uri.gleam
index fbd95ec..d3cf2e6 100644
--- a/src/gleam/uri.gleam
+++ b/src/gleam/uri.gleam
@@ -187,13 +187,6 @@ pub fn origin(uri: Uri) -> Result(String, Nil) {
}
}
-fn option_or(first: Option(a), second: Option(a)) -> Option(a) {
- case first {
- Some(_) -> first
- None -> second
- }
-}
-
fn drop_last(elements) {
let tuple(keep, _last) = list.split(elements, list.length(elements) - 1)
keep
@@ -250,7 +243,7 @@ pub fn merge(base: Uri, relative: Uri) -> Result(Uri, Nil) {
base.host,
base.port,
base.path,
- option_or(relative.query, base.query),
+ option.or(relative.query, base.query),
relative.fragment,
)
Ok(resolved)