   
   /* snapshot management */
   
-  func updateFromSnapshot (_ snap: Snapshot) -> Bool {
+  @discardableResult
+  func updateFromSnapshot(_ snap: Snapshot) -> Bool {
     takeStoredValues(snap)
     return true
   }

//  ZeeQL
//
//  Created by Helge Hess on 26/02/2017.
//  Copyright © 2017 ZeeZide GmbH. All rights reserved.
//

/**

  }
}

public extension SnapshotHoldingObject {
  
  func revert() {
    guard let snapshot = snapshot else { return } // no snap?
    let changes = changesFromSnapshot(snapshot)
    guard !changes.isEmpty else { return } // nothing changed, feel the same.
    
    for key in changes.keys {
      guard let oldValue = snapshot[key] else { continue } // double any
      takeStoredValue(oldValue, forKey: key)
    }
  }
}


public protocol DatabaseObjectValidation {
  
