qs
Types
pub type OneOrMany {
One(String)
Many(List(String))
}
Constructors
-
One(String)
-
Many(List(String))
Functions
pub fn delete(query: Map(String, OneOrMany), key: String) -> Map(
String,
OneOrMany,
)
Delete a key from the query
pub fn get(query: Map(String, OneOrMany), key: String) -> Result(
OneOrMany,
String,
)
Get values from the query
pub fn get_as_bool(query: Map(String, OneOrMany), key: String) -> Result(
Bool,
String,
)
Attempt to get one value as a Bool If the value is a list this will fail
pub fn get_as_float(query: Map(String, OneOrMany), key: String) -> Result(
Float,
String,
)
Attempt to get one value as an Float If the value is a list this will fail
pub fn get_as_int(query: Map(String, OneOrMany), key: String) -> Result(
Int,
String,
)
Attempt to get one value as an Int If the value is a list this will fail
pub fn get_as_list(query: Map(String, OneOrMany), key: String) -> List(
String,
)
Get values from the query as a list of strings (regardless if one or many). If keys are not present this defaults to an empty list
pub fn get_as_list_of_bool(query: Map(String, OneOrMany), key: String) -> Result(
List(Bool),
String,
)
Attempt to get values as a list of Bool
pub fn get_as_list_of_float(query: Map(String, OneOrMany), key: String) -> Result(
List(Float),
String,
)
Attempt to get values as a list of Float
pub fn get_as_list_of_int(query: Map(String, OneOrMany), key: String) -> Result(
List(Int),
String,
)
Attempt to get values as a list of Int
pub fn get_as_string(query: Map(String, OneOrMany), key: String) -> Result(
String,
String,
)
Attempt to get one value as a string If the value is a list this will fail
pub fn has_key(query: Map(String, OneOrMany), key: String) -> Bool
Tell if the query has the given key
pub fn insert(query: Map(String, OneOrMany), key: String, value: OneOrMany) -> Map(
String,
OneOrMany,
)
Insert a value in the query
pub fn insert_list(query: Map(String, OneOrMany), key: String, values: List(
String,
)) -> Map(String, OneOrMany)
Set a list of values in the query
pub fn insert_one(query: Map(String, OneOrMany), key: String, value: String) -> Map(
String,
OneOrMany,
)
Set a unique value in the query
pub fn maybe_get_as_list(query: Map(String, OneOrMany), key: String) -> Result(
List(String),
String,
)
pub fn merge(a: Map(String, OneOrMany), b: Map(String, OneOrMany)) -> Map(
String,
OneOrMany,
)
Merge two Querys. If there are entries with the same keys in both maps the entry from the second query takes precedence.
pub fn parse(qs: String) -> Result(Map(String, OneOrMany), String)
Parse a query string
Example
"?color=red&tags[]=large&tags[]=wool"
|> qs.parse
> Ok([ #("color", qs.One("red")), #("tags", qs.Many(["large", "wool"])) ] |> map.from_list)
pub fn parse_key_value(segment: String) -> Result(
#(String, String, Bool),
String,
)
pub fn push(query: Map(String, OneOrMany), key: String, value: String) -> Map(
String,
OneOrMany,
)
Adds one value to a list If the key is not a list then it will be promoted to a list If the key doesn’t exist then it will be added as a list of one item