         throw UnwrapError.tryingToUnwrapNil
     }
     
-}+}
+
+func testRawRepresentableNumber() {
+    enum Value: Int {
+        case first = 1
+    }
+    struct Test: Mappable {
+        let value: Value
+        init(map: Mapper) throws {
+            try self.value = map.from("value")
+        }
+    }
+    let _ = try! Test(map: Mapper(interchangeData: ["value": 1]))
+}

    }
    
    public func from<T: RawRepresentable>(key: String) throws -> T {
        let rawValue: T.RawValue = try interchangeData.get(key)
        if let value = T(rawValue: rawValue) {
            return value

    public enum Error: ErrorProtocol {
        case cantInitFromRawValue
        case noInterchangeData(key: String)
        case rawIntNotSupported
    }
    
    public init(interchangeData: InterchangeData) {
