SYMBOL INDEX (362 symbols across 95 files) FILE: binarypkg/utils.go function ToUpperCase (line 6) | func ToUpperCase(s string) string { function ToLowerCase (line 11) | func ToLowerCase(s string) string { FILE: binarypkgdemo/main.go function main (line 9) | func main() { FILE: ch01/declarations/enum.go constant UNSPECIFIED (line 7) | UNSPECIFIED Level = iota constant TRACE (line 9) | TRACE constant INFO (line 11) | INFO constant WARNING (line 13) | WARNING constant ERROR (line 15) | ERROR type Level (line 19) | type Level method String (line 31) | func (l Level) String() string { function main (line 35) | func main() { FILE: ch01/declarations/main.go constant Title (line 6) | Title = "Person Details" function main (line 11) | func main() { FILE: ch01/declarations/main1.go constant Title (line 6) | Title string = "Person Details" function main (line 11) | func main() { FILE: ch01/favorites/main.go function main (line 9) | func main() { FILE: ch01/hello/main.go function main (line 5) | func main() { FILE: ch01/lib/favorites.go function init (line 7) | func init() { function Add (line 15) | func Add(favorite string) { function GetAll (line 20) | func GetAll() []string { FILE: ch01/lib/utils.go function PrintFavorites (line 8) | func PrintFavorites() { FILE: ch01/loop/main.go function main (line 5) | func main() { function sum (line 9) | func sum() { function sum1 (line 16) | func sum1() { FILE: ch01/strutils/utils.go function ToUpperCase (line 10) | func ToUpperCase(s string) string { function ToLowerCase (line 15) | func ToLowerCase(s string) string { function ToFirstUpper (line 20) | func ToFirstUpper(s string) string { FILE: ch01/strutilsdemo/main.go function main (line 9) | func main() { FILE: ch01/typeconv/main.go function main (line 8) | func main() { FILE: ch01/vetting/main.go function main (line 5) | func main() { FILE: ch02/arrays/main.go function main (line 7) | func main() { FILE: ch02/defer/deferfunc.go function ReadFile (line 9) | func ReadFile(filename string) ([]byte, error) { function main (line 18) | func main() { FILE: ch02/defer/panicrecover.go function panicRecover (line 7) | func panicRecover() { function main (line 21) | func main() { FILE: ch02/functions/calc.go function Add (line 7) | func Add(x, y int) int { function Subtract (line 11) | func Subtract(x, y int) int { function main (line 15) | func main() { FILE: ch02/functions/closures.go function SplitValues (line 7) | func SplitValues(f func(sum int) (int, int)) { function main (line 15) | func main() { FILE: ch02/functions/swap.go function Swap (line 7) | func Swap(x, y string) (string, string) { function main (line 11) | func main() { FILE: ch02/functions/variadic.go function Sum (line 7) | func Sum(nums ...int) int { function main (line 15) | func main() { FILE: ch02/maps/main.go function main (line 7) | func main() { function removeLan (line 48) | func removeLan(langs map[string]string, key string) { FILE: ch02/maps/sort_map.go function main (line 8) | func main() { FILE: ch02/slices/append.go function main (line 7) | func main() { FILE: ch02/slices/append_nilslice.go function main (line 5) | func main() { FILE: ch02/slices/copy.go function main (line 7) | func main() { FILE: ch02/slices/iterate.go function main (line 7) | func main() { FILE: ch02/slices/main.go function main (line 7) | func main() { FILE: ch02/slices/slicing.go function main (line 7) | func main() { FILE: ch03/ecommerce/main.go function main (line 8) | func main() { FILE: ch03/ecommerce/models.go type Address (line 8) | type Address struct type Customer (line 13) | type Customer struct method ToString (line 18) | func (c Customer) ToString() string { method ShippingAddress (line 21) | func (c Customer) ShippingAddress() string { type Order (line 30) | type Order struct method GrandTotal (line 38) | func (o *Order) GrandTotal() float64 { method ToString (line 45) | func (o *Order) ToString() string { method ChangeStatus (line 58) | func (o *Order) ChangeStatus(newStatus string) { type OrderItem (line 62) | type OrderItem struct method Total (line 67) | func (item OrderItem) Total() float64 { method ToString (line 70) | func (item OrderItem) ToString() string { type Product (line 77) | type Product struct FILE: ch03/employee/employee.go type TeamMember (line 9) | type TeamMember interface type Employee (line 14) | type Employee struct method PrintName (line 20) | func (e Employee) PrintName() { method PrintDetails (line 24) | func (e Employee) PrintDetails() { type Developer (line 28) | type Developer struct method PrintDetails (line 34) | func (d Developer) PrintDetails() { type Manager (line 43) | type Manager struct method PrintDetails (line 50) | func (m Manager) PrintDetails() { type Team (line 63) | type Team struct method PrintTeamDetails (line 68) | func (t Team) PrintTeamDetails() { function main (line 77) | func main() { FILE: ch03/person.go type Person (line 11) | type Person struct method PrintName (line 18) | func (p Person) PrintName() { method PrintDetails (line 23) | func (p Person) PrintDetails() { function main (line 27) | func main() { FILE: ch03/pointer/main.go type Person (line 10) | type Person struct method PrintName (line 17) | func (p *Person) PrintName() { method PrintDetails (line 22) | func (p *Person) PrintDetails() { method ChangeLocation (line 27) | func (p *Person) ChangeLocation(newLocation string) { function main (line 30) | func main() { FILE: ch04/channels/main.go function main (line 7) | func main() { FILE: ch04/deadlock/main.go function main (line 7) | func main() { FILE: ch04/deadlock/main_deadlock.go function main (line 7) | func main() { FILE: ch04/mathtable/main.go function main (line 14) | func main() { function addTable (line 29) | func addTable() { function multiTable (line 43) | func multiTable() { FILE: ch04/pipeline/main.go type fibvalue (line 10) | type fibvalue struct function randomCounter (line 16) | func randomCounter(out chan<- int) { function generateFibonacci (line 26) | func generateFibonacci(out chan<- fibvalue, in <-chan int) { function printFibonacci (line 43) | func printFibonacci(in <-chan fibvalue) { function main (line 50) | func main() { FILE: ch04/pipeline/main1.go type fibvalue (line 10) | type fibvalue struct function randomCounter (line 17) | func randomCounter(out chan int) { function generateFibonacci (line 28) | func generateFibonacci(out chan fibvalue, in chan int) { function printFibonacci (line 46) | func printFibonacci(in chan fibvalue) { function main (line 53) | func main() { FILE: ch04/select/context.go function generateValues (line 8) | func generateValues(ctx context.Context, counter chan int) { function main (line 20) | func main() { FILE: ch04/select/main.go type fibvalue (line 11) | type fibvalue struct type squarevalue (line 14) | type squarevalue struct function generateSquare (line 19) | func generateSquare(sqrs chan<- squarevalue) { function generateFibonacci (line 29) | func generateFibonacci(fibs chan<- fibvalue) { function printValues (line 43) | func printValues(fibs <-chan fibvalue, sqrs <-chan squarevalue) { function main (line 58) | func main() { FILE: ch04/unbuffercounter/main.go function main (line 12) | func main() { function printCounts (line 31) | func printCounts(label string, count chan int) { FILE: ch04/unbuffercounter/main1.go function main (line 12) | func main() { function printCounts (line 31) | func printCounts(label string, count chan int) { FILE: ch04/worker/main.go type Task (line 13) | type Task struct method Run (line 20) | func (t *Task) Run() { constant noOfWorkers (line 31) | noOfWorkers = 3 function main (line 34) | func main() { function worker (line 63) | func worker(taskQueue <-chan *Task, workerId int) { FILE: ch05/archivetar/main.go function addToArchive (line 13) | func addToArchive(filename string, tw *tar.Writer) error { function archiveFiles (line 46) | func archiveFiles(files []string, archive string) error { function readArchive (line 70) | func readArchive(archive string) error { function main (line 106) | func main() { FILE: ch05/archivezip/main.go function addToArchive (line 12) | func addToArchive(filename string, zw *zip.Writer) error { function archiveFiles (line 33) | func archiveFiles(files []string, archive string) error { function readArchive (line 55) | func readArchive(archive string) error { function main (line 84) | func main() { FILE: ch05/cmdflags/main.go function main (line 8) | func main() { FILE: ch05/flag/main.go function main (line 8) | func main() { FILE: ch05/json/main.go type Employee (line 9) | type Employee struct function main (line 14) | func main() { FILE: ch05/jsontag/main.go type Employee (line 9) | type Employee struct function main (line 16) | func main() { FILE: ch05/log/logger.go constant UNSPECIFIED (line 12) | UNSPECIFIED Level = iota constant TRACE (line 14) | TRACE constant INFO (line 16) | INFO constant WARNING (line 18) | WARNING constant ERROR (line 20) | ERROR type Level (line 24) | type Level function initLog (line 35) | func initLog( function SetLogLevel (line 57) | func SetLogLevel(level Level) { FILE: ch05/log/main.go function main (line 8) | func main() { function loop (line 22) | func loop() { FILE: ch05/simplelog/main.go function initLog (line 20) | func initLog( function main (line 37) | func main() { function loop (line 45) | func loop() { FILE: ch06/influx/main.go constant DB (line 16) | DB = "metricsdb" constant username (line 17) | username = "opsadmin" constant password (line 18) | password = "pass123" function main (line 21) | func main() { function influxDBClient (line 38) | func influxDBClient() client.Client { function createMetrics (line 51) | func createMetrics(clnt client.Client) { function queryDB (line 92) | func queryDB(clnt client.Client, command string) (res []client.Result, e... function readWithLimit (line 111) | func readWithLimit(clnt client.Client, limit int) { function meanCPUUsage (line 129) | func meanCPUUsage(clnt client.Client, region string) { function countRegion (line 144) | func countRegion(clnt client.Client, region string) { FILE: ch06/mongo/bookmark_store.go type Bookmark (line 11) | type Bookmark struct type BookmarkStore (line 20) | type BookmarkStore struct method Create (line 25) | func (store BookmarkStore) Create(b *Bookmark) error { method Update (line 33) | func (store BookmarkStore) Update(b Bookmark) error { method Delete (line 47) | func (store BookmarkStore) Delete(id string) error { method GetAll (line 53) | func (store BookmarkStore) GetAll() []Bookmark { method GetByID (line 64) | func (store BookmarkStore) GetByID(id string) (Bookmark, error) { method GetByTag (line 71) | func (store BookmarkStore) GetByTag(tags []string) []Bookmark { FILE: ch06/mongo/main.go function init (line 15) | func init() { function createUpdate (line 31) | func createUpdate() { function getByID (line 73) | func getByID(id string) { function getAll (line 83) | func getAll() { function getByTags (line 96) | func getByTags() { function delete (line 113) | func delete() { function main (line 122) | func main() { FILE: ch06/postgres/main.go type Product (line 12) | type Product struct function init (line 21) | func init() { function main (line 28) | func main() { function createProduct (line 43) | func createProduct(prd Product) { function getProducts (line 55) | func getProducts() { function getProductByID (line 84) | func getProductByID(id int) { FILE: ch06/rethink/bookmark_store.go type Bookmark (line 10) | type Bookmark struct type BookmarkStore (line 19) | type BookmarkStore struct method Create (line 24) | func (store BookmarkStore) Create(b *Bookmark) error { method Update (line 35) | func (store BookmarkStore) Update(b Bookmark) error { method Delete (line 49) | func (store BookmarkStore) Delete(id string) error { method GetAll (line 55) | func (store BookmarkStore) GetAll() ([]Bookmark, error) { method GetByID (line 64) | func (store BookmarkStore) GetByID(id string) (Bookmark, error) { FILE: ch06/rethink/main.go function initDB (line 15) | func initDB(session *r.Session) { function changeFeeds (line 30) | func changeFeeds(session *r.Session) { function init (line 50) | func init() { function createUpdate (line 72) | func createUpdate() { function getByID (line 113) | func getByID(id string) { function getAll (line 122) | func getAll() { function delete (line 138) | func delete() { function main (line 150) | func main() { FILE: ch07/bookmarkapi/common/auth.go type AppClaims (line 18) | type AppClaims struct constant privKeyPath (line 28) | privKeyPath = "keys/app.rsa" constant pubKeyPath (line 30) | pubKeyPath = "keys/app.rsa.pub" function initKeys (line 41) | func initKeys() { function GenerateJWT (line 65) | func GenerateJWT(name, role string) (string, error) { function AuthorizeRequest (line 84) | func AuthorizeRequest(next http.Handler) http.Handler { function AuthorizeRequestWithNegroni (line 144) | func AuthorizeRequestWithNegroni(w http.ResponseWriter, r *http.Request,... function TokenFromAuthHeader (line 202) | func TokenFromAuthHeader(r *http.Request) (string, error) { FILE: ch07/bookmarkapi/common/bootstrapper.go function StartUp (line 4) | func StartUp() { FILE: ch07/bookmarkapi/common/logger.go constant UNSPECIFIED (line 12) | UNSPECIFIED Level = iota constant TRACE (line 14) | TRACE constant INFO (line 16) | INFO constant WARNING (line 18) | WARNING constant ERROR (line 20) | ERROR type Level (line 24) | type Level function initLog (line 35) | func initLog( function setLogLevel (line 57) | func setLogLevel(level Level) { FILE: ch07/bookmarkapi/common/mongo_utils.go function getSession (line 13) | func getSession() *mgo.Session { function createDBSession (line 28) | func createDBSession() { function addIndexes (line 42) | func addIndexes() { type DataStore (line 62) | type DataStore struct method Close (line 68) | func (ds *DataStore) Close() { method Collection (line 73) | func (ds *DataStore) Collection(name string) *mgo.Collection { function NewDataStore (line 78) | func NewDataStore() *DataStore { FILE: ch07/bookmarkapi/common/utils.go type appError (line 11) | type appError struct type errorResource (line 16) | type errorResource struct type configuration (line 19) | type configuration struct function DisplayAppError (line 26) | func DisplayAppError(w http.ResponseWriter, handlerError error, message ... function initConfig (line 45) | func initConfig() { function loadAppConfig (line 50) | func loadAppConfig() { FILE: ch07/bookmarkapi/controllers/bookmark_controller.go function CreateBookmark (line 17) | func CreateBookmark(w http.ResponseWriter, r *http.Request) { function GetBookmarks (line 76) | func GetBookmarks(w http.ResponseWriter, r *http.Request) { function GetBookmarkByID (line 99) | func GetBookmarkByID(w http.ResponseWriter, r *http.Request) { function GetBookmarksByUser (line 142) | func GetBookmarksByUser(w http.ResponseWriter, r *http.Request) { function UpdateBookmark (line 168) | func UpdateBookmark(w http.ResponseWriter, r *http.Request) { function DeleteBookmark (line 206) | func DeleteBookmark(w http.ResponseWriter, r *http.Request) { FILE: ch07/bookmarkapi/controllers/resources.go type UserResource (line 10) | type UserResource struct type AuthUserResource (line 14) | type AuthUserResource struct type BookmarkResource (line 19) | type BookmarkResource struct type BookmarksResource (line 23) | type BookmarksResource struct type UserModel (line 28) | type UserModel struct type AuthUserModel (line 35) | type AuthUserModel struct FILE: ch07/bookmarkapi/controllers/user_controller.go function Register (line 14) | func Register(w http.ResponseWriter, r *http.Request) { function Login (line 45) | func Login(w http.ResponseWriter, r *http.Request) { FILE: ch07/bookmarkapi/main.go function main (line 12) | func main() { FILE: ch07/bookmarkapi/model/models.go type User (line 11) | type User struct type Bookmark (line 19) | type Bookmark struct FILE: ch07/bookmarkapi/routers/bookmark.go function SetBookmarkRoutes (line 11) | func SetBookmarkRoutes(router *mux.Router) *mux.Router { FILE: ch07/bookmarkapi/routers/routers.go function InitRoutes (line 8) | func InitRoutes() *mux.Router { FILE: ch07/bookmarkapi/routers/user.go function SetUserRoutes (line 10) | func SetUserRoutes(router *mux.Router) *mux.Router { FILE: ch07/bookmarkapi/store/bookmark_store.go type BookmarkStore (line 13) | type BookmarkStore struct method Create (line 18) | func (store BookmarkStore) Create(b *model.Bookmark) error { method Update (line 27) | func (store BookmarkStore) Update(b model.Bookmark) error { method Delete (line 41) | func (store BookmarkStore) Delete(id string) error { method GetAll (line 47) | func (store BookmarkStore) GetAll() []model.Bookmark { method GetByUser (line 58) | func (store BookmarkStore) GetByUser(user string) []model.Bookmark { method GetByID (line 69) | func (store BookmarkStore) GetByID(id string) (model.Bookmark, error) { method GetByTag (line 76) | func (store BookmarkStore) GetByTag(tags []string) []model.Bookmark { FILE: ch07/bookmarkapi/store/user_store.go type UserStore (line 12) | type UserStore struct method Create (line 17) | func (store UserStore) Create(user model.User, password string) error { method Login (line 30) | func (store UserStore) Login(email, password string) (model.User, erro... FILE: ch07/customhandler/main.go type textHandler (line 9) | type textHandler struct method ServeHTTP (line 13) | func (th *textHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques... type indexHandler (line 17) | type indexHandler struct method ServeHTTP (line 20) | func (ih *indexHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque... function main (line 42) | func main() { FILE: ch07/defaultservemux/main.go function index (line 9) | func index(w http.ResponseWriter, r *http.Request) { function welcome (line 30) | func welcome(w http.ResponseWriter, r *http.Request) { function message (line 33) | func message(w http.ResponseWriter, r *http.Request) { function main (line 37) | func main() { FILE: ch07/handlefunc/main.go function index (line 9) | func index(w http.ResponseWriter, r *http.Request) { function welcome (line 30) | func welcome(w http.ResponseWriter, r *http.Request) { function message (line 33) | func message(w http.ResponseWriter, r *http.Request) { function main (line 37) | func main() { FILE: ch07/handlerfunc/main.go function textResponseHandler (line 9) | func textResponseHandler(resposeText string) http.Handler { function index (line 14) | func index(w http.ResponseWriter, r *http.Request) { function welcome (line 35) | func welcome(w http.ResponseWriter, r *http.Request) { function message (line 38) | func message(w http.ResponseWriter, r *http.Request) { function main (line 42) | func main() { FILE: ch07/httpserver/main.go function handler (line 8) | func handler(w http.ResponseWriter, r *http.Request) { function main (line 12) | func main() { FILE: ch07/middleware/main.go function loggingHandler (line 11) | func loggingHandler(next http.Handler) http.Handler { function index (line 22) | func index(w http.ResponseWriter, r *http.Request) { function welcome (line 43) | func welcome(w http.ResponseWriter, r *http.Request) { function message (line 46) | func message(w http.ResponseWriter, r *http.Request) { function favicon (line 49) | func favicon(w http.ResponseWriter, r *http.Request) { function main (line 52) | func main() { FILE: ch07/server/main.go function index (line 10) | func index(w http.ResponseWriter, r *http.Request) { function main (line 14) | func main() { FILE: ch08/calc/calc.go function Sum (line 7) | func Sum(nums ...int) int { function Average (line 17) | func Average(nums ...int) float64 { FILE: ch08/calc/calc_test.go function TestSum (line 10) | func TestSum(t *testing.T) { function TestAverage (line 21) | func TestAverage(t *testing.T) { function BenchmarkSum (line 31) | func BenchmarkSum(b *testing.B) { function BenchmarkAverage (line 38) | func BenchmarkAverage(b *testing.B) { function TestLongRun (line 44) | func TestLongRun(t *testing.T) { function TestSumInParallel (line 54) | func TestSumInParallel(t *testing.T) { function TestAverageInParallel (line 68) | func TestAverageInParallel(t *testing.T) { function ExampleSum (line 81) | func ExampleSum() { function ExampleAverage (line 87) | func ExampleAverage() { FILE: ch08/httpbdd/controllers/controllers_suite_test.go function TestControllers (line 10) | func TestControllers(t *testing.T) { FILE: ch08/httpbdd/controllers/user_controller.go function GetUsers (line 12) | func GetUsers(store model.UserStore) http.Handler { function CreateUser (line 28) | func CreateUser(store model.UserStore) http.Handler { FILE: ch08/httpbdd/controllers/user_controller_test.go type FakeUserStore (line 82) | type FakeUserStore struct method GetUsers (line 87) | func (store *FakeUserStore) GetUsers() []model.User { method AddUser (line 92) | func (store *FakeUserStore) AddUser(user model.User) error { function newFakeUserStore (line 104) | func newFakeUserStore() *FakeUserStore { FILE: ch08/httpbdd/main.go function setUserRoutes (line 12) | func setUserRoutes() *mux.Router { function main (line 20) | func main() { FILE: ch08/httpbdd/model/user.go type User (line 9) | type User struct type UserStore (line 16) | type UserStore interface FILE: ch08/httpbdd/store/user_store.go function createDBSession (line 17) | func createDBSession() { function init (line 29) | func init() { type MongoUserStore (line 34) | type MongoUserStore struct method AddUser (line 37) | func (store *MongoUserStore) AddUser(user model.User) error { method GetUsers (line 56) | func (store *MongoUserStore) GetUsers() []model.User { FILE: ch08/httptest/main.go type User (line 11) | type User struct function getUsers (line 18) | func getUsers(w http.ResponseWriter, r *http.Request) { function main (line 42) | func main() { FILE: ch08/httptest/main_test.go function TestGetUsers (line 13) | func TestGetUsers(t *testing.T) { function TestGetUsersWithServer (line 29) | func TestGetUsersWithServer(t *testing.T) { FILE: grpc/client/main.go constant address (line 14) | address = "localhost:50051" function createCustomer (line 18) | func createCustomer(client pb.CustomerClient, customer *pb.CustomerReque... function getCustomers (line 29) | func getCustomers(client pb.CustomerClient, filter *pb.CustomerFilter) { function main (line 47) | func main() { FILE: grpc/customer/customer.pb.go constant _ (line 36) | _ = proto.ProtoPackageIsVersion2 type CustomerRequest (line 39) | type CustomerRequest struct method Reset (line 47) | func (m *CustomerRequest) Reset() { *m = CustomerRe... method String (line 48) | func (m *CustomerRequest) String() string { return proto.Co... method ProtoMessage (line 49) | func (*CustomerRequest) ProtoMessage() {} method Descriptor (line 50) | func (*CustomerRequest) Descriptor() ([]byte, []int) { return fileDesc... method GetAddresses (line 52) | func (m *CustomerRequest) GetAddresses() []*CustomerRequest_Address { type CustomerRequest_Address (line 59) | type CustomerRequest_Address struct method Reset (line 67) | func (m *CustomerRequest_Address) Reset() { *m = Cu... method String (line 68) | func (m *CustomerRequest_Address) String() string { return ... method ProtoMessage (line 69) | func (*CustomerRequest_Address) ProtoMessage() {} method Descriptor (line 70) | func (*CustomerRequest_Address) Descriptor() ([]byte, []int) { return ... type CustomerResponse (line 72) | type CustomerResponse struct method Reset (line 77) | func (m *CustomerResponse) Reset() { *m = CustomerR... method String (line 78) | func (m *CustomerResponse) String() string { return proto.C... method ProtoMessage (line 79) | func (*CustomerResponse) ProtoMessage() {} method Descriptor (line 80) | func (*CustomerResponse) Descriptor() ([]byte, []int) { return fileDes... type CustomerFilter (line 82) | type CustomerFilter struct method Reset (line 86) | func (m *CustomerFilter) Reset() { *m = CustomerFil... method String (line 87) | func (m *CustomerFilter) String() string { return proto.Com... method ProtoMessage (line 88) | func (*CustomerFilter) ProtoMessage() {} method Descriptor (line 89) | func (*CustomerFilter) Descriptor() ([]byte, []int) { return fileDescr... function init (line 91) | func init() { constant _ (line 104) | _ = grpc.SupportPackageIsVersion3 type CustomerClient (line 108) | type CustomerClient interface type customerClient (line 115) | type customerClient struct method GetCustomers (line 123) | func (c *customerClient) GetCustomers(ctx context.Context, in *Custome... method CreateCustomer (line 155) | func (c *customerClient) CreateCustomer(ctx context.Context, in *Custo... function NewCustomerClient (line 119) | func NewCustomerClient(cc *grpc.ClientConn) CustomerClient { type Customer_GetCustomersClient (line 138) | type Customer_GetCustomersClient interface type customerGetCustomersClient (line 143) | type customerGetCustomersClient struct method Recv (line 147) | func (x *customerGetCustomersClient) Recv() (*CustomerRequest, error) { type CustomerServer (line 166) | type CustomerServer interface function RegisterCustomerServer (line 173) | func RegisterCustomerServer(s *grpc.Server, srv CustomerServer) { function _Customer_GetCustomers_Handler (line 177) | func _Customer_GetCustomers_Handler(srv interface{}, stream grpc.ServerS... type Customer_GetCustomersServer (line 185) | type Customer_GetCustomersServer interface type customerGetCustomersServer (line 190) | type customerGetCustomersServer struct method Send (line 194) | func (x *customerGetCustomersServer) Send(m *CustomerRequest) error { function _Customer_CreateCustomer_Handler (line 198) | func _Customer_CreateCustomer_Handler(srv interface{}, ctx context.Conte... function init (line 235) | func init() { proto.RegisterFile("customer.proto", fileDescriptor0) } FILE: grpc/server/main.go constant port (line 15) | port = ":50051" type server (line 19) | type server struct method CreateCustomer (line 24) | func (s *server) CreateCustomer(ctx context.Context, in *pb.CustomerRe... method GetCustomers (line 30) | func (s *server) GetCustomers(filter *pb.CustomerFilter, stream pb.Cus... function main (line 44) | func main() {