code: func (s *Scrubber) Scrub(obj interface{}) (callbacks map[string]Path) {
  	callbacks = make(map[string]Path)
  	rv := reflect.ValueOf(obj)
  
  	k := rv.Kind()
  	if k != reflect.Array && k != reflect.Slice && k != reflect.Struct && k != reflect.Map {
  		return nil
  	}
  
  	s.collect(rv, make(Path, 0), callbacks)
  	return callbacks
  }
docs: // Scrub creates an object that represents "callbacks" field in dnode message.
  // The obj argument which will be scrubbed must be of array, slice, struct, or
  // map type. If structure is passed, the returned callbacks map will contain its
  // exported methods of func(*Partial) signature. Other functions must be
  // wrapped by Callback function.