private static Column[] ParseColumns(OtpInputStream s) { int colNameCount = s.ReadListHead(); string[] columnNames = new string[colNameCount]; for (int i = 0; i < colNameCount; i++) { columnNames[i] = s.ReadBinaryAsString(); } if (colNameCount > 0) { s.ReadNil(); } int colTypeCount = s.ReadListHead(); ColumnType[] columnTypes = new ColumnType[colTypeCount]; for (int i = 0; i < colTypeCount; i++) { string a = s.ReadAtom(); columnTypes[i] = (ColumnType)Enum.Parse(typeof(ColumnType), a, true); } if (colTypeCount > 0) { s.ReadNil(); } return(columnNames.Zip(columnTypes, (cname, ctype) => new Column(cname, ctype)).ToArray()); }
private static Row[] ParseRows(OtpInputStream s, Column[] cols) { int rowCount = s.ReadListHead(); Row[] rows = new Row[rowCount]; for (int i = 0; i < rowCount; i++) { rows[i] = ParseRow(s, cols); } if (rowCount > 0) { s.ReadNil(); } return(rows); }
private static Row[] ParseRows(OtpInputStream s, Column[] cols) { int rowCount = s.ReadListHead(); Row[] rows = new Row[rowCount]; for (int i = 0; i < rowCount; i++) { rows[i] = ParseRow(s, cols); } if (rowCount > 0) { s.ReadNil(); } return rows; }
private static Column[] ParseColumns(OtpInputStream s) { int colNameCount = s.ReadListHead(); string[] columnNames = new string[colNameCount]; for (int i = 0; i < colNameCount; i++) { columnNames[i] = s.ReadBinaryAsString(); } if (colNameCount > 0) { s.ReadNil(); } int colTypeCount = s.ReadListHead(); ColumnType[] columnTypes = new ColumnType[colTypeCount]; for (int i = 0; i < colTypeCount; i++) { string a = s.ReadAtom(); columnTypes[i] = (ColumnType)Enum.Parse(typeof(ColumnType), a, true); } if (colTypeCount > 0) { s.ReadNil(); } return columnNames.Zip(columnTypes, (cname, ctype) => new Column(cname, ctype)).ToArray(); }