File indexing completed on 2025-02-02 03:54:44
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>highlight.jsonnet</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Jsonnet) - Theme (Breeze Light)"/> 0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre> 0007 <span style="font-weight:bold">local</span> utils <span style="color:#ca60ca">=</span> <span style="font-weight:bold">import</span> <span style="color:#bf0303">'utils.libsonnet'</span><span style="color:#ca60ca">;</span> 0008 0009 <span style="color:#898887">/* A C-style</span> 0010 <span style="color:#898887"> comment.</span> 0011 <span style="color:#898887">*/</span> 0012 <span style="color:#898887"># A Python-style comment.</span> 0013 0014 <span style="color:#898887">// Define a "local" function.</span> 0015 <span style="color:#898887">// Default arguments are like Python:</span> 0016 <span style="font-weight:bold">local</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">,</span> y<span style="color:#ca60ca">=</span><span style="color:#b08000">10</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">=</span> x <span style="color:#ca60ca">+</span> y<span style="color:#ca60ca">;</span> 0017 0018 <span style="font-weight:bold">local</span> object <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">{</span> 0019 <span style="color:#898887">// A method</span> 0020 <span style="color:#644a9b">my_method</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">):</span> x <span style="color:#ca60ca">*</span> x<span style="color:#ca60ca">,</span> 0021 <span style="color:#ca60ca">};</span> 0022 0023 <span style="font-weight:bold">local</span> string1 <span style="color:#ca60ca">=</span> <span style="color:#bf0303">'Farmer</span><span style="color:#3daee9">\'</span><span style="color:#bf0303">s Gin'</span><span style="color:#ca60ca">;</span> 0024 <span style="font-weight:bold">local</span> string_newline1 <span style="color:#ca60ca">=</span> <span style="color:#bf0303">'this is</span> 0025 <span style="color:#bf0303">a valid string</span> 0026 <span style="color:#bf0303">with newlines'</span><span style="color:#ca60ca">;</span> 0027 <span style="font-weight:bold">local</span> string_newline2 <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"this is</span> 0028 <span style="color:#bf0303">also</span> 0029 <span style="color:#bf0303">a valid string"</span><span style="color:#ca60ca">;</span> 0030 0031 <span style="font-weight:bold">local</span> timcollins <span style="color:#ca60ca">=</span> <span style="color:#bf0303">|||</span> 0032 <span style="color:#bf0303"> The Tom Collins is essentially gin and</span> 0033 <span style="color:#bf0303"> lemonade. The bitters add complexity.</span> 0034 <span style="color:#bf0303">|||</span><span style="color:#ca60ca">;</span> 0035 0036 <span style="font-weight:bold">local</span> obj <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">{</span> 0037 <span style="color:#bf0303">"foo"</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> 0038 <span style="color:#bf0303">"bar"</span><span style="color:#ca60ca">:</span> <span style="color:#ca60ca">{</span> 0039 <span style="color:#bf0303">"arr"</span><span style="color:#ca60ca">:</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">],</span> 0040 <span style="color:#bf0303">"number"</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">10</span> <span style="color:#ca60ca">+</span> <span style="color:#b08000">7</span><span style="color:#ca60ca">,</span> 0041 <span style="color:#ca60ca">},</span> 0042 <span style="color:#ca60ca">};</span> 0043 0044 <span style="color:#898887">// Define a local function.</span> 0045 <span style="color:#898887">// Default arguments are like Python:</span> 0046 <span style="font-weight:bold">local</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">,</span> y<span style="color:#ca60ca">=</span><span style="color:#b08000">10</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">=</span> x <span style="color:#ca60ca">+</span> y<span style="color:#ca60ca">;</span> 0047 0048 <span style="color:#898887">// Define a local multiline function.</span> 0049 <span style="font-weight:bold">local</span> <span style="color:#644a9b">multiline_function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">=</span> 0050 <span style="color:#898887">// One can nest locals.</span> 0051 <span style="font-weight:bold">local</span> temp <span style="color:#ca60ca">=</span> x <span style="color:#ca60ca">*</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">;</span> 0052 <span style="color:#898887">// Every local ends with a semi-colon.</span> 0053 <span style="color:#ca60ca">[</span>temp<span style="color:#ca60ca">,</span> temp <span style="color:#ca60ca">+</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">];</span> 0054 0055 <span style="font-weight:bold">local</span> object <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">{</span> 0056 <span style="color:#898887">// A method</span> 0057 <span style="color:#644a9b">my_method</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">):</span> x <span style="color:#ca60ca">*</span> x<span style="color:#ca60ca">,</span> 0058 <span style="color:#ca60ca">};</span> 0059 0060 <span style="font-weight:bold">local</span> large <span style="color:#ca60ca">=</span> true<span style="color:#ca60ca">;</span> 0061 0062 <span style="color:#ca60ca">{</span> 0063 0064 <span style="color:#898887">// Functions are first class citizens.</span> 0065 call_inline_function<span style="color:#ca60ca">:</span> 0066 <span style="color:#ca60ca">(</span><span style="color:#644a9b">function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">)</span> x <span style="color:#ca60ca">*</span> x<span style="color:#ca60ca">)(</span><span style="color:#b08000">5</span><span style="color:#ca60ca">),</span> 0067 0068 call_multiline_function<span style="color:#ca60ca">:</span> <span style="color:#644a9b">multiline_function</span><span style="color:#ca60ca">(</span><span style="color:#b08000">4</span><span style="color:#ca60ca">),</span> 0069 0070 <span style="color:#898887">// Using the variable fetches the function,</span> 0071 <span style="color:#898887">// the parens call the function.</span> 0072 call<span style="color:#ca60ca">:</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span><span style="color:#b08000">2</span><span style="color:#ca60ca">),</span> 0073 0074 <span style="color:#898887">// Like python, parameters can be named at</span> 0075 <span style="color:#898887">// call time.</span> 0076 named_params<span style="color:#ca60ca">:</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">=</span><span style="color:#b08000">2</span><span style="color:#ca60ca">),</span> 0077 <span style="color:#898887">// This allows changing their order</span> 0078 named_params2<span style="color:#ca60ca">:</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span>y<span style="color:#ca60ca">=</span><span style="color:#b08000">3</span><span style="color:#ca60ca">,</span> x<span style="color:#ca60ca">=</span><span style="color:#b08000">2</span><span style="color:#ca60ca">),</span> 0079 0080 <span style="color:#898887">// object.my_method returns the function,</span> 0081 <span style="color:#898887">// which is then called like any other.</span> 0082 call_method1<span style="color:#ca60ca">:</span> object<span style="color:#ca60ca">.</span><span style="color:#644a9b">my_method</span><span style="color:#ca60ca">(</span><span style="color:#b08000">3</span><span style="color:#ca60ca">),</span> 0083 0084 standard_lib<span style="color:#ca60ca">:</span> 0085 <span style="font-weight:bold">std</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">join</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">' '</span><span style="color:#ca60ca">,</span> <span style="font-weight:bold">std</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">split</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">"foo/bar"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">'/'</span><span style="color:#ca60ca">)),</span> 0086 len<span style="color:#ca60ca">:</span> <span style="color:#ca60ca">[</span> 0087 <span style="font-weight:bold">std</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">length</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">'hello'</span><span style="color:#ca60ca">),</span> 0088 <span style="font-weight:bold">std</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">length</span><span style="color:#ca60ca">([</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">]),</span> 0089 <span style="color:#ca60ca">],</span> 0090 0091 cocktails<span style="color:#ca60ca">:</span> <span style="color:#ca60ca">{</span> 0092 <span style="font-weight:bold">local</span> factor <span style="color:#ca60ca">=</span> <span style="font-weight:bold">if</span> large <span style="font-weight:bold">then</span> <span style="color:#b08000">2</span> <span style="font-weight:bold">else</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> 0093 0094 <span style="color:#898887">// Ingredient quantities are in fl oz.</span> 0095 <span style="color:#bf0303">'Tom Collins'</span><span style="color:#ca60ca">:</span> <span style="color:#ca60ca">{</span> 0096 ingredients<span style="color:#ca60ca">:</span> <span style="color:#ca60ca">[</span> 0097 <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> string1<span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#b08000">1.5</span><span style="color:#ca60ca">*</span>factor <span style="color:#ca60ca">},</span> 0098 <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Lemon'</span><span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#b08000">1</span> <span style="color:#ca60ca">},</span> 0099 <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Simple Syrup'</span><span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#b08000">0.5E+1</span> <span style="color:#ca60ca">},</span> 0100 <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Soda'</span><span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#b08000">2</span> <span style="color:#ca60ca">},</span> 0101 <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Angostura'</span><span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'dash'</span> <span style="color:#ca60ca">},</span> 0102 <span style="color:#ca60ca">],</span> 0103 garnish<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Maraschino Cherry'</span><span style="color:#ca60ca">,</span> 0104 served<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Tall'</span><span style="color:#ca60ca">,</span> 0105 description<span style="color:#ca60ca">:</span> timcollins<span style="color:#ca60ca">,</span> 0106 <span style="color:#ca60ca">},</span> 0107 <span style="color:#ca60ca">},</span> 0108 <span style="color:#ca60ca">}</span> 0109 </pre></body></html>