 
 // MARK: Types
 
+/// Recursive tree enum that represents data being encoded/decoded
 internal indirect enum CoderTreeValue {
     case StringValue(String)
     case IntValue(Int)


private extension String {
    func writeToBuffer(inout buffer: [UInt8], inout stringMap: [String: [UInt8]]) {
        if let bytes = stringMap[self] {
            buffer.appendContentsOf(bytes)
            return

    case IdentifyingTree(String,[CoderTreeValue])
}

/// Byte header to identify CoderTreeValue in a byte array
internal enum CerealCoderTreeValueType: UInt8 {
    case String = 1
    case Int = 2
