(cases vary-name)Returns the cases of a variant as a map. Usage: (cases CoffeeSize)
Returns the cases of a variant as a map. Usage: (cases CoffeeSize)
(generate-accessors vary-name case-map)Generates accessor functions for all unique properties in the case map, only for associated values maps.
Generates accessor functions for all unique properties in the case map, only for associated values maps.
(generate-schema case-map)Generates a Malli schema from a case map defining variant cases.
Generates a Malli schema from a case map defining variant cases.
(match value vary-name & clauses)Matches a value against variant cases with validation. Usage: (match size CoffeeSize :small 3.50 :medium 4.00 :large 4.50) (match order OrderStatus :pending "Order is pending" [:completed amount] (str "Completed with amount: " amount) [:failed reason] (str "Failed: " reason))
Matches a value against variant cases with validation.
Usage:
(match size CoffeeSize
:small 3.50
:medium 4.00
:large 4.50)
(match order OrderStatus
:pending "Order is pending"
[:completed amount] (str "Completed with amount: " amount)
[:failed reason] (str "Failed: " reason))(vary vary-name case-map)Defines a variant with a Malli schema, case associated values, and accessor functions. Usage: (vary CoffeeSize {:small {:label "Small" :price 3.50 :volume 8} :medium {:label "Medium" :price 4.00 :volume 12} :large {:label "Large" :price 4.50 :volume 16}}) (vary OrderStatus {:pending [] :completed [:amount :double] :failed [:reason :string]}) (vary Color #{:red :blue :green})
Defines a variant with a Malli schema, case associated values, and accessor functions.
Usage:
(vary CoffeeSize
{:small {:label "Small" :price 3.50 :volume 8}
:medium {:label "Medium" :price 4.00 :volume 12}
:large {:label "Large" :price 4.50 :volume 16}})
(vary OrderStatus
{:pending []
:completed [:amount :double]
:failed [:reason :string]})
(vary Color #{:red :blue :green})cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |