Borgo (language)
Borgo is a new programming language that compiles to Go.
<span style="font-weight:bold;color:#a71d5d;">use</span><span style="color:#323232;"> fmt </span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#a71d5d;">enum </span><span style="color:#323232;">NetworkState<T> { </span><span style="color:#323232;"> Loading, </span><span style="color:#323232;"> Failed(int), </span><span style="color:#323232;"> Success(T), </span><span style="color:#323232;">} </span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#a71d5d;">struct </span><span style="color:#323232;">Response { </span><span style="color:#323232;"> title: string, </span><span style="color:#323232;"> duration: int, </span><span style="color:#323232;">} </span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#a71d5d;">fn </span><span style="font-weight:bold;color:#795da3;">main</span><span style="color:#323232;">() { </span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#a71d5d;">let</span><span style="color:#323232;"> res </span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> Response { </span><span style="color:#323232;"> title: </span><span style="color:#183691;">"Hello world"</span><span style="color:#323232;">, </span><span style="color:#323232;"> duration: </span><span style="color:#0086b3;">0</span><span style="color:#323232;">, </span><span style="color:#323232;"> } </span><span style="color:#323232;"> </span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#a71d5d;">let</span><span style="color:#323232;"> state </span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> NetworkState.Success(res) </span><span style="color:#323232;"> </span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#a71d5d;">let</span><span style="color:#323232;"> msg </span><span style="font-weight:bold;color:#a71d5d;">= match</span><span style="color:#323232;"> state { </span><span style="color:#323232;"> NetworkState.Loading </span><span style="font-weight:bold;color:#a71d5d;">=> </span><span style="color:#183691;">"still loading"</span><span style="color:#323232;">, </span><span style="color:#323232;"> NetworkState.Failed(code) </span><span style="font-weight:bold;color:#a71d5d;">=></span><span style="color:#323232;"> fmt.Sprintf(</span><span style="color:#183691;">"Got error code: %d"</span><span style="color:#323232;">, code), </span><span style="color:#323232;"> NetworkState.Success(res) </span><span style="font-weight:bold;color:#a71d5d;">=></span><span style="color:#323232;"> res.title, </span><span style="color:#323232;"> } </span><span style="color:#323232;"> </span><span style="color:#323232;"> fmt.Println(msg) </span><span style="color:#323232;">} </span>
Add comment