code: func Only(next retry.Factory) retry.Factory {
  	if next == nil {
  		return nil
  	}
  	return func() retry.Iterator {
  		if it := next(); it != nil {
  			return &transientOnlyIterator{it}
  		}
  		return nil
  	}
  }
docs: // Only returns a retry.Iterator that wraps another retry.Iterator. It
  // will fall through to the wrapped Iterator ONLY if an error with the
  // transient.Tag is encountered; otherwise, it will not retry.
  //
  // Returns nil if f is nil.
  //
  // Example:
  //   err := retry.Retry(c, transient.Only(retry.Default), func() error {
  //     if condition == "red" {
  //		   // This error isn't transient, so it won't be retried.
  //		   return errors.New("fatal bad condition")
  //     } elif condition == "green" {
  //		   // This isn't an error, so it won't be retried.
  //		   return nil
  //     }
  //     // This will get retried, because it's transient.
  //     return errors.New("dunno what's wrong", transient.Tag)
  //   })