From a653a6602fe5ae5eb4739755db7b34bc92ecdadf Mon Sep 17 00:00:00 2001 From: Cody Date: Sun, 29 Jan 2023 20:58:04 -0600 Subject: More stuffs --- examples/webserver.sloth | 108 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 examples/webserver.sloth (limited to 'examples/webserver.sloth') diff --git a/examples/webserver.sloth b/examples/webserver.sloth new file mode 100644 index 0000000..abbead3 --- /dev/null +++ b/examples/webserver.sloth @@ -0,0 +1,108 @@ +# Include the external dependency itself as a module named "slow_api" +use extern "slowapi" as slow_api; + +# Use some things from the "slow_api" module +use std::serde::Serializable; +use std::serde::format::Json; + +use slow_api::{SlowAPI, Method}; + +# Construct a slow API server +val server = SlowApi(); + +type Person derives Serializable = { + name: String, + age: Option +}; + +fn hello_route( + name: Argument, + age: Argument>, +) -> Json { + Person { name, age } +} + +# Start the server +server + .route(Method::GET, "/hello", hello_route) + .start("0.0.0.0:8000"); +# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +### +type Poggies; + +trait Constructor<..T> { + fn new(..T) -> Self; +} + +impl Constructor<> for Poggies { + fn new() -> Self { + # + } +} + +impl> Default for T { + fn default() -> Self { + Self::new() + } +} + +### +type Person = { + name: String, + age: i32, +}; + +type Person derives Serialize, Deserialize = { + name: String, + age: i32, +}; + +@route::get("/teacup") # vvvvvv - Requires T to implement Serialize +fn teacup_route() -> Response { + Response(418, Person { + name: "Cody Q", + age: 17, + }) +} -- cgit v1.2.3