From 9dfb55deee6820c648ef676c2650e38310a0b1b3 Mon Sep 17 00:00:00 2001 From: Stephen McQuay Date: Tue, 14 May 2013 20:48:43 -0700 Subject: [PATCH] simple google 1.0 --- main.go | 18 ++++++++++++++++++ search.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 main.go create mode 100644 search.go diff --git a/main.go b/main.go new file mode 100644 index 0000000..e2e0ae9 --- /dev/null +++ b/main.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" + "time" + "math/rand" +) + +func main() { + rand.Seed(time.Now().UnixNano()) + + start := time.Now() + results := Google("golang") + elapsed := time.Since(start) + + fmt.Println(results) + fmt.Println(elapsed) +} diff --git a/search.go b/search.go new file mode 100644 index 0000000..c9df3ec --- /dev/null +++ b/search.go @@ -0,0 +1,33 @@ +package main + +import ( + "fmt" + "math/rand" + "time" +) + +var ( + Web = fakeSearch("web") + Image = fakeSearch("image") + Video = fakeSearch("video") +) + +type Search func(query string) Result + +type Result struct { + Goodies string +} + +func fakeSearch(kind string) Search { + return func(query string) Result { + time.Sleep(time.Duration(rand.Intn(100)) * time.Millisecond) + return Result{fmt.Sprintf("%s result for %q\n", kind, query)} + } +} + +func Google(query string) (results []Result) { + results = append(results, Web(query)) + results = append(results, Image(query)) + results = append(results, Video(query)) + return +}