 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
+public protocol MeasureLoggerType: class {
+  func didEndMeasurement(result: Measure.Result)
+}
+
 open class Measure: Hashable {
 
   public struct Result {


  open var endAt: Date?

  // MARK: - Initializers

  public required init(name: String, threshold: TimeInterval? = nil) {

    self.name = name
    self.threshold = threshold
  }

  @discardableResult

    public let time: TimeInterval
    public let threshold: TimeInterval?
    public let isThresholdExceeded: Bool

    public let file: String
    public let function: String
    public let line: UInt
  }

  public static func == (lhs: Measure, rhs: Measure) -> Bool {
