     /**
     Helper function for evaluating the path to a database for easy use in the YapDatabase constructor.
     
-    :param: directory a NSSearchPathDirectory value, use .DocumentDirectory for production.
-    :param: name a String, the name of the sqlite file.
-    :param: suffix a String, will be appended to the name of the file.
-    
-    :returns: a String
+    - parameter directory: a NSSearchPathDirectory value, use .DocumentDirectory for production.
+    - parameter name: a String, the name of the sqlite file.
+    - parameter suffix: a String, will be appended to the name of the file.
+    
+    - returns: a String
     */
     public static func pathToDatabase(directory: NSSearchPathDirectory, name: String, suffix: String? = .None) -> String {
         let paths = NSSearchPathForDirectoriesInDomains(directory, .UserDomainMask, true)

    their basis.

    :param: block A closure which receives YapDatabaseReadWriteTransaction and returns T
    :returns: An instance of T
    */
    public func write<T>(block: (YapDatabaseReadWriteTransaction) -> T) -> T {
        var result: T! = .None

    static var collection: String { get }
}

extension Persistable {

    /**
    Convenience static function to get an index for a given key 
    with this type's collection.
    
    - parameter key: a String
    - returns: a YapDB.Index value.
    */
    public static func indexWithKey(key: String) -> YapDB.Index {
        return YapDB.Index(collection: collection, key: key)
    }
}

/**
A simple function which generates a String key from a Persistable
instance. 
