c3.html 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. <!--
  5. pre { font-family: monospace; color: #d0d0d0; background-color: #121212; }
  6. * { font-size: 1em; }
  7. .Statement { color: #d7005f; font-weight: bold; }
  8. .String { color: #afaf87; }
  9. .Conditional { color: #d7005f; font-weight: bold; }
  10. .Function { color: #87ff00; }
  11. .Boolean { color: #af5fff; }
  12. .Operator { color: #d7005f; }
  13. .LineNr { color: #bcbcbc; background-color: #303030; padding-bottom: 1px; }
  14. .Keyword { color: #d7005f; font-weight: bold; }
  15. .Comment { color: #5f5f5f; }
  16. .Type { color: #5fd7ff; }
  17. -->
  18. </style>
  19. </head>
  20. <pre id='vimCodeElement'>
  21. <span id="L1" class="LineNr"> 1 </span><span class="Statement">package</span> main
  22. <span id="L2" class="LineNr"> 2 </span>
  23. <span id="L3" class="LineNr"> 3 </span><span class="Statement">import</span> (
  24. <span id="L4" class="LineNr"> 4 </span> <span class="String">&quot;flow/registry&quot;</span>
  25. <span id="L5" class="LineNr"> 5 </span> <span class="String">&quot;flowserver&quot;</span>
  26. <span id="L6" class="LineNr"> 6 </span> <span class="String">&quot;io/ioutil&quot;</span>
  27. <span id="L7" class="LineNr"> 7 </span> <span class="String">&quot;log&quot;</span>
  28. <span id="L8" class="LineNr"> 8 </span> <span class="String">&quot;math&quot;</span>
  29. <span id="L9" class="LineNr"> 9 </span> <span class="String">&quot;net/http&quot;</span>
  30. <span id="L10" class="LineNr">10 </span> <span class="String">&quot;strings&quot;</span>
  31. <span id="L11" class="LineNr">11 </span>)
  32. <span id="L12" class="LineNr">12 </span>
  33. <span id="L13" class="LineNr">13 </span><span class="Keyword">func</span> <span class="Function">main</span>() {
  34. <span id="L14" class="LineNr">14 </span>
  35. <span id="L15" class="LineNr">15 </span> r <span class="Operator">:=</span> registry.New()
  36. <span id="L16" class="LineNr">16 </span> r.Register(<span class="String">&quot;hello&quot;</span>, <span class="Keyword">func</span>() <span class="Type">string</span> {
  37. <span id="L17" class="LineNr">17 </span> <span class="Statement">return</span> <span class="String">&quot;hello world&quot;</span>
  38. <span id="L18" class="LineNr">18 </span> })
  39. <span id="L19" class="LineNr">19 </span> r.Add(strings.Split, strings.Join)
  40. <span id="L20" class="LineNr">20 </span>
  41. <span id="L21" class="LineNr">21 </span> fns, err <span class="Operator">:=</span> r.Add(math.Exp, math.Sin, math.Cos)
  42. <span id="L22" class="LineNr">22 </span> <span class="Conditional">if</span> err <span class="Operator">!=</span> <span class="Boolean">nil</span> {
  43. <span id="L23" class="LineNr">23 </span> log.Fatal(err)
  44. <span id="L24" class="LineNr">24 </span> }
  45. <span id="L25" class="LineNr">25 </span><span class="Comment"> //Describing groups of functions</span>
  46. <span id="L26" class="LineNr">26 </span> fns.Tags(<span class="String">&quot;math&quot;</span>)
  47. <span id="L27" class="LineNr">27 </span> fns.Extra(<span class="String">&quot;style&quot;</span>, registry.M{<span class="String">&quot;color&quot;</span>: <span class="String">&quot;#F00&quot;</span>})
  48. <span id="L28" class="LineNr">28 </span>
  49. <span id="L29" class="LineNr">29 </span><span class="Comment"> // Describing a function</span>
  50. <span id="L30" class="LineNr">30 </span> registry.Describer(
  51. <span id="L31" class="LineNr">31 </span> r.MustAdd(http.Get).Inputs(<span class="String">&quot;url&quot;</span>),
  52. <span id="L32" class="LineNr">32 </span> r.MustAdd(responseReader).Inputs(<span class="String">&quot;response&quot;</span>),
  53. <span id="L33" class="LineNr">33 </span> ).Tags(<span class="String">&quot;http&quot;</span>).Extra(<span class="String">&quot;style&quot;</span>, registry.M{<span class="String">&quot;color&quot;</span>: <span class="String">&quot;#00F&quot;</span>})
  54. <span id="L34" class="LineNr">34 </span>
  55. <span id="L35" class="LineNr">35 </span> http.ListenAndServe(<span class="String">&quot;:5000&quot;</span>, flowserver.New(r, <span class="String">&quot;storename&quot;</span>))
  56. <span id="L36" class="LineNr">36 </span>
  57. <span id="L37" class="LineNr">37 </span>}
  58. <span id="L38" class="LineNr">38 </span><span class="Keyword">func</span> <span class="Function">responseReader</span>(r <span class="Operator">*</span>http.Response) (<span class="Type">string</span>, <span class="Type">error</span>) {
  59. <span id="L39" class="LineNr">39 </span> <span class="Statement">defer</span> r.Body.Close()
  60. <span id="L40" class="LineNr">40 </span> res, err <span class="Operator">:=</span> ioutil.ReadAll(r.Body)
  61. <span id="L41" class="LineNr">41 </span> <span class="Statement">return</span> <span class="Type">string</span>(res), err
  62. <span id="L42" class="LineNr">42 </span>}
  63. </pre>
  64. <img src="c3.jpg">
  65. </body>
  66. </html