diff options
Diffstat (limited to 'example')
| -rw-r--r-- | example/Makefile | 10 | ||||
| -rw-r--r-- | example/README.md | 3 | ||||
| -rw-r--r-- | example/haberdasherclient.nim | 25 | ||||
| -rw-r--r-- | example/haberdasherserver.nim | 47 | ||||
| -rw-r--r-- | example/nim.cfg | 1 | ||||
| -rw-r--r-- | example/service.proto | 22 |
6 files changed, 0 insertions, 108 deletions
diff --git a/example/Makefile b/example/Makefile deleted file mode 100644 index 74f6709..0000000 --- a/example/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: haberdasherserver haberdasherclient - -haberdasherserver: haberdasherserver.nim service_pb.nim service_twirp.nim - nim c haberdasherserver.nim - -haberdasherclient: haberdasherclient.nim service_pb.nim service_twirp.nim - nim c haberdasherclient.nim - -%_pb.nim %_twirp.nim: %.proto - ../nimtwirp/nimtwirp_build -I:. --out:. $^ diff --git a/example/README.md b/example/README.md deleted file mode 100644 index acdee60..0000000 --- a/example/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Nimtwirp usage example - -This example is basically stolen from [twirp](https://twitchtv.github.io/twirp/docs/example.html). diff --git a/example/haberdasherclient.nim b/example/haberdasherclient.nim deleted file mode 100644 index d402356..0000000 --- a/example/haberdasherclient.nim +++ /dev/null @@ -1,25 +0,0 @@ -import os -import strformat -import strutils - -import service_pb -import service_twirp - -if paramCount() != 1: - echo("usage: " & getAppFilename() & " <size>") - quit(QuitFailure) - -var size = newtwirp_example_haberdasher_Size() -try: - size.inches = parseInt(paramStr(1)).int32 -except: - echo("invalid size") - quit(QuitFailure) - -let client = newHaberdasherClient("http://localhost:8080") - -try: - let hat = MakeHat(client, size) - echo(&"I have a nice new hat: {hat.inches} inch {hat.color} {hat.name}") -except Exception as exc: - echo(&"oh no: {exc.msg}") diff --git a/example/haberdasherserver.nim b/example/haberdasherserver.nim deleted file mode 100644 index cdb25cb..0000000 --- a/example/haberdasherserver.nim +++ /dev/null @@ -1,47 +0,0 @@ -import asynchttpserver -import asyncdispatch -import random - -import nimtwirp/nimtwirp -import nimtwirp/errors - -import service_pb -import service_twirp - -proc MakeHatImpl(service: Haberdasher, size: twirp_example_haberdasher_Size): Future[twirp_example_haberdasher_Hat] {.async.} = - if size.inches <= 0: - raise newTwirpError(TwirpInvalidArgument, "I can't make a hat that small!") - - result = newtwirp_example_haberdasher_Hat() - result.inches = size.inches - result.color = rand(["white", "black", "brown", "red", "blue"]) - result.name = rand(["bowler", "baseball cap", "top hat", "derby"]) - -# You can do serving this way if you want to customize the process a bit - -var - server = newAsyncHttpServer() - service {.threadvar.}: Haberdasher - -service = newHaberdasher() -service.MakeHatImpl = MakeHatImpl - -proc handler(req: Request) {.async.} = - # Each service will have a generated handleRequest() proc which takes the - # service object and a asynchttpserver.Request object and returns a - # Future[nimtwirp.Response]. - var fut = handleRequest(service, req) - yield fut - if fut.failed: - await respond(req, nimtwirp.newResponse(fut.readError())) - else: - await respond(req, fut.read()) - -waitFor server.serve(Port(8080), handler) - -# Or this way (idea copied from Jester) if your needs are simple. -# -#var settings = newSettings(8080) -#twirpServices(settings): -# service -#runForever() diff --git a/example/nim.cfg b/example/nim.cfg deleted file mode 100644 index 8ea4922..0000000 --- a/example/nim.cfg +++ /dev/null @@ -1 +0,0 @@ ---path=".." diff --git a/example/service.proto b/example/service.proto deleted file mode 100644 index 1945a72..0000000 --- a/example/service.proto +++ /dev/null @@ -1,22 +0,0 @@ -syntax = "proto3"; - -package twirp.example.haberdasher; -option go_package = "haberdasher"; - -// Haberdasher service makes hats for clients. -service Haberdasher { - // MakeHat produces a hat of mysterious, randomly-selected color! - rpc MakeHat(Size) returns (Hat); -} - -// Size of a Hat, in inches. -message Size { - int32 inches = 1; // must be > 0 -} - -// A Hat is a piece of headwear made by a Haberdasher. -message Hat { - int32 inches = 1; - string color = 2; // anything but "invisible" - string name = 3; // i.e. "bowler" -} |
