[{"name":"Placeholder.DoubleCurly","comment":"\n\n\n# DoubleCurly\n\nParse Strings into functions using the {{double curly brackets}} placeholder syntax.\nFor more detail, view the documentation in `Placeholder.Internal`.\n\n@docs parsePlaceholder1, parsePlaceholder2, parsePlaceholder3, parsePlaceholder4\n\n","unions":[],"aliases":[],"values":[{"name":"parsePlaceholder1","comment":" Parse a `String` into a function substituting the argument at the position marked by double curly braces.\n\n    parsePlaceholder1 \"This is {{name}}s example\" |> Result.map ((|>) \"Andy\")\n    --> Ok \"This is Andys example\"\n\n","type":"String.String -> Result.Result String.String (String.String -> String.String)"},{"name":"parsePlaceholder2","comment":" Parse a `String` into a function substituting the arguments at the two positions marked by double curly braces.\n","type":"String.String -> Result.Result String.String (String.String -> String.String -> String.String)"},{"name":"parsePlaceholder3","comment":" Parse a `String` into a function substituting the arguments at the three positions marked by double curly braces.\n","type":"String.String -> Result.Result String.String (String.String -> String.String -> String.String -> String.String)"},{"name":"parsePlaceholder4","comment":" Parse a `String` into a function substituting the arguments at the four positions marked by double curly braces.\n","type":"String.String -> Result.Result String.String (String.String -> String.String -> String.String -> String.String -> String.String)"}],"binops":[]},{"name":"Placeholder.Internal","comment":" This module allows defining placeholder parsers based on a non-supported `Syntax` as well as\nusing the internal `Template` type for different purposes.\n\n\n# Template\n\n@docs Template, parseTemplate, getPlaceholderNames, templateToString\n\n\n# Syntax\n\n@docs Syntax, parsePlaceholder1, parsePlaceholder2, parsePlaceholder3, parsePlaceholder4\n\n","unions":[{"name":"Template","comment":" A `Template` includes an ordered list of placeholders and text segments.\n`Template`s guarantee that\n\n    List.length segments == List.length placeholders + 1\n\nand they can be converted back to the same `String` representation they were parsed from.\n\n","args":[],"cases":[]}],"aliases":[{"name":"Syntax","comment":" A `Syntax` tells the `templateParser` how to distinguish placeholders from regular text.\nAt the moment, this can only be configured by setting start and end symbol.\n","args":[],"type":"{ startSymbol : String.String, endSymbol : String.String }"}],"values":[{"name":"getPlaceholderNames","comment":" Get the names of the placeholders in a `Template`.\n\n    parseTemplate { startSymbol = \"${\", endSymbol = \"}\" } \"${first} ${snd}\"\n        |> Result.map getPlaceholderNames\n    --> Ok [\"first\", \"snd\"]\n\n","type":"Placeholder.Internal.Template -> List.List String.String"},{"name":"parsePlaceholder1","comment":" Parse a `String` into a function substituting the argument at the position marked by the `Syntax`.\n\n    exampleOf : Result String (String -> String)\n    exampleOf = parsePlaceholder1 { startSymbol = \"${\", endSymbol = \"}\" } \"This is ${name}s example\"\n\n    Result.map ((|>) \"Andy\") exampleOf\n    --> Ok \"This is Andys example\"\n\n    parsePlaceholder1 { startSymbol = \"${\", endSymbol = \"}\" } \"No placeholder\"\n    --> Err \"Expected more placeholders.\"\n\n    parsePlaceholder1 { startSymbol = \"${\", endSymbol = \"}\" } \"${multiple}${placeholders}\"\n    --> Err \"Expected less placeholders.\"\n\n","type":"Placeholder.Internal.Syntax -> String.String -> Result.Result String.String (Placeholder.Internal.F1 String.String)"},{"name":"parsePlaceholder2","comment":" Parse a `String` into a function substituting the arguments at the two positions marked by the `Syntax`.\n\n    parsePlaceholder2 { startSymbol = \"{\", endSymbol = \"}\" } \"{greeting} {target}\"\n        |> Result.map (\\f -> f \"Hello\" \"World\")\n    --> Ok \"Hello World\"\n\n","type":"Placeholder.Internal.Syntax -> String.String -> Result.Result String.String (Placeholder.Internal.F2 String.String)"},{"name":"parsePlaceholder3","comment":" Parse a `String` into a function substituting the arguments at the three positions marked by the `Syntax`.\n","type":"Placeholder.Internal.Syntax -> String.String -> Result.Result String.String (Placeholder.Internal.F3 String.String)"},{"name":"parsePlaceholder4","comment":" Parse a `String` into a function substituting the arguments at the four positions marked by the `Syntax`.\n","type":"Placeholder.Internal.Syntax -> String.String -> Result.Result String.String (Placeholder.Internal.F4 String.String)"},{"name":"parseTemplate","comment":" Parse a `String` into a `Template` based on a `Syntax`.\n\n    syntax : Syntax\n    syntax = { startSymbol = \"${\", endSymbol = \"}\" }\n\n    parseTemplate syntax \"This is ${name}s example\" |> Result.map (always ())\n\n    --> Ok ()\n    parseTemplate syntax \"This does not ${makeSense\"\n\n    --> Err \"TODO deadEndsToString\" -- (Waiting for upstream fix in elm/parser)\n\n","type":"Placeholder.Internal.Syntax -> String.String -> Result.Result String.String Placeholder.Internal.Template"},{"name":"templateToString","comment":" Convert a parsed `Template` back to its `String` representation.\nFor any template built with `Syntax` s,\n\n    templateToString >> parseTemplate s == identity\n\n    parseTemplate { startSymbol = \"${\", endSymbol = \"}\" } \"This is ${name}s example\"\n        |> Result.map templateToString\n    --> Ok \"This is ${name}s example\"\n\n","type":"Placeholder.Internal.Template -> String.String"}],"binops":[]}]