Data Types

This commit is contained in:
Michael Schimmel
2025-08-25 15:31:15 +02:00
parent c9e28a946d
commit 42110e8471
10 changed files with 980 additions and 193 deletions
+13 -13
View File
@@ -231,7 +231,7 @@ begin
try
if not FArrayTypeRegistry.TryGetValue(AElementType, Result) then
begin
Result := TImplDataArrayType.Create(AElementType);
Result := TDataArrayType.Create(AElementType);
FArrayTypeRegistry.Add(AElementType, Result);
end;
finally
@@ -241,7 +241,7 @@ end;
class function TDataType.Float: IDataFloatType;
begin
Result := TImplDataFloatType.Singleton;
Result := TDataFloatType.Singleton;
end;
function TDataType.GetName: String;
@@ -254,7 +254,7 @@ end;
class function TDataType.Ordinal: IDataOrdinalType;
begin
Result := TImplDataOrdinalType.Singleton;
Result := TDataOrdinalType.Singleton;
end;
class function TDataType.RecordOf(const Fields: TArray<TRecordField>): IDataRecordType;
@@ -263,7 +263,7 @@ begin
try
if not FRecordTypeRegistry.TryGetValue(Fields, Result) then
begin
Result := TImplDataRecordType.Create(Fields);
Result := TDataRecordType.Create(Fields);
FRecordTypeRegistry.Add(Fields, Result);
end;
finally
@@ -284,22 +284,22 @@ end;
class function TDataType.EnumOf(const AName: string; const AIdentifiers: array of string): IDataEnumType;
begin
Result := TImplDataEnumType.Create(AName, AIdentifiers);
Result := TDataEnumType.Create(AName, AIdentifiers);
end;
class function TDataType.Text: IDataTextType;
begin
Result := TImplDataTextType.Singleton;
Result := TDataTextType.Singleton;
end;
class function TDataType.Timestamp: IDataTimestampType;
begin
Result := TImplDataTimestampType.Singleton;
Result := TDataTimestampType.Singleton;
end;
class function TDataType.Tuple: IDataTupleType;
begin
Result := TImplDataTupleType.Singleton;
Result := TDataTupleType.Singleton;
end;
class operator TDataType.Implicit(const A: TDataType): IDataType;
@@ -377,27 +377,27 @@ end;
class function TDataValue.FromOrdinal(const AValue: Int64): IDataOrdinalValue;
begin
Result := TImplDataOrdinalType.Singleton.CreateValue(AValue);
Result := TDataOrdinalType.Singleton.CreateValue(AValue);
end;
class function TDataValue.FromFloat(const AValue: Double): IDataFloatValue;
begin
Result := TImplDataFloatType.Singleton.CreateValue(AValue);
Result := TDataFloatType.Singleton.CreateValue(AValue);
end;
class function TDataValue.FromText(const AValue: string): IDataTextValue;
begin
Result := TImplDataTextType.Singleton.CreateValue(AValue);
Result := TDataTextType.Singleton.CreateValue(AValue);
end;
class function TDataValue.FromTimestamp(const AValue: TDateTime): IDataTimestampValue;
begin
Result := TImplDataTimestampType.Singleton.CreateValue(AValue);
Result := TDataTimestampType.Singleton.CreateValue(AValue);
end;
class function TDataValue.FromTuple(const AItems: array of IDataValue): IDataTupleValue;
begin
Result := TImplDataTupleType.Singleton.CreateValue(AItems);
Result := TDataTupleType.Singleton.CreateValue(AItems);
end;
function TDataValue.GetDataType: IDataType;