From cb7d7586b8ba2a52466a937307294a20684a4437 Mon Sep 17 00:00:00 2001 From: Charles Iliya Krempeaux Date: Sat, 10 Oct 2015 13:35:41 -0700 Subject: [PATCH] added to docs --- filtered_router.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/filtered_router.go b/filtered_router.go index 4e39edc..92b6969 100644 --- a/filtered_router.go +++ b/filtered_router.go @@ -7,6 +7,37 @@ package flog // re-Route a 'message' (and 'context') to, but only on the // condition that 'filterFn' returns 'true' for the 'message' // and 'context' passed to it. +// +// An example for 'filterFn' is the following. +// +// func filterError(message string, context map[string]interface{})bool) bool { +// if datum, ok := context["error"]; !ok { +// return false +// } else if _, ok := datum.(error); !ok { +// return false +// } else { +// return true +// } +// } +// +// This func will make it so only re-route messages whose context #1 has the key "error" +// and #2 the value of the context at key "key" fits the builtin Go 'error' interface. +// +// Also, a rather useless example, but a 'filterFn' that would reject all messages (and +// contexts) is: +// +// func filterRejectAll(message string, context map[string]interface{})bool) bool { +// return false +// } +// +// +// And also, another rather useless example, but a 'filterFn' that would allow all messages +// (and contexts) is: +// +// func filterAcceptAll(message string, context map[string]interface{})bool) bool { +// return true +// } +// func NewFilteredRouter(subrouter Router, filterFn func(string, map[string]interface{})bool) *FilteredRouter { router := FilteredRouter{ subrouter:subrouter,