UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StructSerializerTestTypes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Misc/Guid.h"
9
10#include "StructSerializerTestTypes.generated.h"
11
12class UObject;
13
14UCLASS()
19
23USTRUCT()
25{
27
28 UPROPERTY()
30
31 UPROPERTY()
33
34 UPROPERTY()
36
37 UPROPERTY()
39
40 UPROPERTY()
42
43 UPROPERTY()
45
46 UPROPERTY()
48
49 UPROPERTY()
51
52 UPROPERTY()
53 float Float;
54
55 UPROPERTY()
56 double Double;
57
60 : Int8(-127)
61 , Int16(-32767)
62 , Int32(-2147483647)
63 , Int64(-92233720368547/*75807*/)
64 , UInt8(255)
65 , UInt16(65535)
66 , UInt32(4294967295)
67 , UInt64(18446744073709/*551615*/)
68 , Float(4.125)
69 , Double(1.03125)
70 { }
71
74};
75
76
80USTRUCT()
82{
84
85 UPROPERTY()
87
88 UPROPERTY()
90
91 UPROPERTY()
92 uint8 Bitfield0 : 1;
93
94 UPROPERTY()
95 uint8 Bitfield1 : 1;
96
97 UPROPERTY()
98 uint8 Bitfield2Set : 1;
99
100 UPROPERTY()
101 uint8 Bitfield3 : 1;
102
103 UPROPERTY()
104 uint8 Bitfield4Set : 1;
105
106 UPROPERTY()
107 uint8 Bitfield5Set : 1;
108
109 UPROPERTY()
110 uint8 Bitfield6 : 1;
111
112 UPROPERTY()
113 uint8 Bitfield7Set : 1;
114
118 , BoolTrue(true)
119 , Bitfield0(0)
120 , Bitfield1(0)
121 , Bitfield2Set(1)
122 , Bitfield3(0)
123 , Bitfield4Set(1)
124 , Bitfield5Set(1)
125 , Bitfield6(0)
126 , Bitfield7Set(1)
127 { }
128
131};
132
133
137USTRUCT()
139{
141
142 UPROPERTY()
144
145 UPROPERTY()
146 TObjectPtr<UClass> WrappedClass;
147
148 UPROPERTY()
150
151 UPROPERTY()
153
154 UPROPERTY()
155 TObjectPtr<UObject> RawObject;
156
157 UPROPERTY()
158 TObjectPtr<UObject> WrappedObject;
159
160 UPROPERTY()
162
163 UPROPERTY()
165
166 UPROPERTY()
167 FSoftClassPath ClassPath;
168
169 UPROPERTY()
171
174 : RawClass(nullptr)
175 , WrappedClass(nullptr)
176 , SubClass(nullptr)
177 , SoftClass(nullptr)
178 , RawObject(nullptr)
179 , WrappedObject(nullptr)
180 , WeakObject(nullptr)
181 , SoftObject(nullptr)
182 , ClassPath((UClass*)nullptr)
183 , ObjectPath(nullptr)
184 {}
185
188};
189
190
195USTRUCT()
197{
199
200 UPROPERTY(meta=(IgnoreForMemberInitializationTest))
202
203 UPROPERTY()
205
206 UPROPERTY()
207 FString String;
208
209 UPROPERTY()
211
212 UPROPERTY()
213 FDateTime Datetime;
214
215 UPROPERTY()
217
218 UPROPERTY()
220
221 UPROPERTY()
223
224 UPROPERTY()
226
227 UPROPERTY()
229
230 UPROPERTY()
232
235 : Guid(FGuid::NewGuid())
236 , Name(TEXT("Test FName"))
237 , String("Test String")
238 , Text(FText::FromString("Test Text"))
239 , Datetime(2048, 2, 4, 8, 16, 32, 64)
240 , Timespan(1, 2, 3, 4, 5)
241 , Vector(1.0f, 2.0f, 3.0f)
242 , Vector4(4.0f, 5.0f, 6.0f, 7.0f)
243 , Rotator(4096, 8192, 16384)
244 , Quat(1.0f, 2.0f, 3.0f, 0.46f)
245 , Color(3, 255, 60, 255)
246 { }
247
250
252 {
253 return Guid == Rhs.Guid && Name == Rhs.Name && String == Rhs.String && Text.EqualTo(Rhs.Text) && Datetime == Rhs.Datetime && Timespan == Rhs.Timespan && Vector == Rhs.Vector && Vector4 == Rhs.Vector4 && Rotator == Rhs.Rotator && Quat == Rhs.Quat && Color == Rhs.Color;
254 }
255};
256
261USTRUCT()
263{
265
266 UPROPERTY()
268
269 UPROPERTY()
271
272 UPROPERTY()
274
275 UPROPERTY()
277
278 UPROPERTY()
280
281 UPROPERTY()
283
284 UPROPERTY()
286
287 UPROPERTY()
289
290 UPROPERTY()
292
293 UPROPERTY()
294 FBox2D Box2D;
295
296 UPROPERTY()
298
299 UPROPERTY()
300 FOrientedBox OrientedBox;
301
302 UPROPERTY()
303 float Float;
304
305 UPROPERTY()
306 double Double;
307
308 UPROPERTY()
309 TArray<FVector> VectorArray;
310
311 UPROPERTY()
312 TMap<FString, FVector> StrToVec;
313
314 UPROPERTY()
316
319 : Vector(1.25, 2.5, 3.75)
320 , Vector2D(2.25, 3.5)
321 , Vector4(0.5, 1.25, 2.5, 3.75)
322 , Matrix(FVector(1.25, 2.25, 3.25), FVector(4.25, 5.5, 6.5), FVector(7.25, 8.25, 9.25), FVector(1, 2, 3))
323 , Plane(0.25, 1.25, 2.25, 3.25)
324 , Quat(0.25, 0.5, 0.75, 1.)
325 , Rotator(2.25)
326 , Transform(FQuat(1, 2, 3, 4))
327 , Box(FVector4(1.0, 2.0, 3.0, 4.0), FVector4(5.0, 6.0, 7.0, 8.0))
328 , Box2D(FVector2D(10.0, 20.0), FVector2D(30.0, 40.0))
329 , BoxSphereBounds(FVector(1.0, 2.0, 3.0), FVector(10.0, 10.0, 10.0), 20.0)
330 , Float(5.25f)
331 , Double(1.114)
332 {
333 OrientedBox.AxisX = FVector(1.0, 1.0, 1.0);
334 OrientedBox.AxisY = FVector(2.0, 2.0, 2.0);
335 OrientedBox.AxisZ = FVector(3.0, 3.0, 3.0);
336 OrientedBox.Center = FVector(5.0, 5.0, 5.0);
337 OrientedBox.ExtentX = 10.0;
338 OrientedBox.ExtentY = 20.0;
339 OrientedBox.ExtentZ = 30.0;
340
341 VectorArray.Add(FVector(1.0, 2.0, 3.0));
342 VectorArray.Add(FVector(-1.0, -2.0, -3.0));
343
344 StrToVec.Add(TEXT("V000"), FVector(0.0, 0.0, 0.0));
345 StrToVec.Add(TEXT("V123"), FVector(1.0, 2.0, 3.0));
346 StrToVec.Add(TEXT("V666"), FVector(6.0, 6.0, 6.0));
347
348 VectorSet.Add(FVector(10.0, 11.0, 12.0));
349 }
350
356};
357
359USTRUCT()
361{
363
365 : Center(0.0f)
366 , AxisX(1.0f, 0.0f, 0.0f)
367 , AxisY(0.0f, 1.0f, 0.0f)
368 , AxisZ(0.0f, 0.0f, 1.0f)
369 , ExtentX(1.0f)
370 , ExtentY(1.0f)
371 , ExtentZ(1.0f)
372 {
373 }
374
376 UPROPERTY()
378
380 UPROPERTY()
382
384 UPROPERTY()
386
388 UPROPERTY()
390
392 UPROPERTY()
393 float ExtentX;
394
396 UPROPERTY()
397 float ExtentY;
398
400 UPROPERTY()
401 float ExtentZ;
402};
403
408USTRUCT()
410{
412
413 UPROPERTY()
415
416 UPROPERTY()
418
419 UPROPERTY()
421
422 UPROPERTY()
424
425 UPROPERTY()
427
428 UPROPERTY()
430
431 UPROPERTY()
433
434 UPROPERTY()
436
437 UPROPERTY()
439
440 UPROPERTY()
441 FBox2f Box2D;
442
443 UPROPERTY()
445
446 UPROPERTY()
447 FOrientedBoxFloat OrientedBox;
448
449 UPROPERTY()
450 float Float;
451
452 UPROPERTY()
453 double Double;
454
455 UPROPERTY()
456 TArray<FVector3f> VectorArray;
457
458 UPROPERTY()
459 TMap<FString, FVector3f> StrToVec;
460
461 UPROPERTY()
463
466 : Vector(1.25f, 2.5f, 3.75f)
467 , Vector2D(2.25f, 3.5f)
468 , Vector4(0.5f, 1.25f, 2.5f, 3.75f)
469 , Matrix(FVector3f(1.25f, 2.25f, 3.25f), FVector3f(4.25f, 5.5f, 6.5f), FVector3f(7.25f, 8.25f, 9.25f), FVector3f(1.f, 2.f, 3.f))
470 , Plane(0.25f, 1.25f, 2.25f, 3.25f)
471 , Quat(0.25f, 0.5f, 0.75f, 1.f)
472 , Rotator(2.25f)
473 , Transform(FQuat4f(1.f, 2.f, 3.f, 4.f))
474 , Box(FVector4f(1.0f, 2.0f, 3.0f, 4.0f), FVector4f(5.0f, 6.0f, 7.0f, 8.0f))
475 , Box2D(FVector2f(10.0f, 20.0f), FVector2f(30.0f, 40.0f))
476 , BoxSphereBounds(FVector3f(1.0f, 2.0f, 3.0f), FVector3f(10.0f, 10.0f, 10.0f), 20.0f)
477 , Float(5.25f)
478 , Double(1.114)
479 {
480 OrientedBox.AxisX = FVector3f(1.0f, 1.0f, 1.0f);
481 OrientedBox.AxisY = FVector3f(2.0f, 2.0f, 2.0f);
482 OrientedBox.AxisZ = FVector3f(3.0f, 3.0f, 3.0f);
483 OrientedBox.Center = FVector3f(5.0f, 5.0f, 5.0f);
484 OrientedBox.ExtentX = 10.0f;
485 OrientedBox.ExtentY = 20.0f;
486 OrientedBox.ExtentZ = 30.0f;
487
488 VectorArray.Add(FVector3f(1.0f, 2.0f, 3.0f));
489 VectorArray.Add(FVector3f(-1.0f, -2.0f, -3.0f));
490
491 StrToVec.Add(TEXT("V000"), FVector3f(0.0f, 0.0f, 0.0f));
492 StrToVec.Add(TEXT("V123"), FVector3f(1.0f, 2.0f, 3.0f));
493 StrToVec.Add(TEXT("V666"), FVector3f(6.0f, 6.0f, 6.0f));
494
495 VectorSet.Add(FVector3f(10.0f, 11.0f, 12.0f));
496 }
497
503};
504
505// basic type hash to test built in struct in sets
510
514USTRUCT()
516{
518
519 UPROPERTY()
520 int32 Dummy1; // To test 'skip array'.
521
522 UPROPERTY()
524
525 UPROPERTY()
526 int32 Dummy2; // To test 'skip array'.
527
528 UPROPERTY()
529 TArray<int8> Int8Array;
530
531 UPROPERTY()
532 int32 Dummy3; // To test 'skip array'.
533
535 {
536 Dummy1 = 1;
537 Dummy2 = 2;
538 Dummy3 = 3;
539
540 ByteArray.Add(0);
541 ByteArray.Add(127);
542 ByteArray.Add(255);
543
544 Int8Array.Add(-128);
545 Int8Array.Add(0);
546 Int8Array.Add(127);
547 }
548
550};
551
552
556USTRUCT()
558{
560
561 UPROPERTY()
562 TArray<int32> Int32Array;
563
564 UPROPERTY()
566
567 UPROPERTY()
568 int32 StaticSingleElement[1];
569
570 UPROPERTY()
571 int32 StaticInt32Array[3];
572
573 UPROPERTY()
574 float StaticFloatArray[3];
575
576 UPROPERTY()
577 TArray<FVector> VectorArray;
578
579 UPROPERTY(meta=(IgnoreForMemberInitializationTest))
581
584 {
585 Int32Array.Add(-1);
586 Int32Array.Add(0);
587 Int32Array.Add(1);
588
589 ByteArray.Add(0);
590 ByteArray.Add(127);
591 ByteArray.Add(255);
592
593 StaticSingleElement[0] = 42;
594
595 StaticInt32Array[0] = -1;
596 StaticInt32Array[1] = 0;
597 StaticInt32Array[2] = 1;
598
599 StaticFloatArray[0] = -1.0f;
600 StaticFloatArray[1] = 0.0f;
601 StaticFloatArray[2] = 1.0f;
602
603 VectorArray.Add(FVector(1.0f, 2.0f, 3.0f));
604 VectorArray.Add(FVector(-1.0f, -2.0f, -3.0f));
605
606 StructArray.AddDefaulted(2);
607 }
608
611};
612
613
617USTRUCT()
619{
621
622 UPROPERTY()
623 TMap<int32, FString> IntToStr;
624
625 UPROPERTY()
626 TMap<FString, FString> StrToStr;
627
628 UPROPERTY()
629 TMap<FString, FVector> StrToVec;
630
631 UPROPERTY(meta=(IgnoreForMemberInitializationTest))
633
636 {
637 IntToStr.Add(1, TEXT("One"));
638 IntToStr.Add(2, TEXT("Two"));
639 IntToStr.Add(3, TEXT("Three"));
640
641 StrToStr.Add(TEXT("StrAll"), TEXT("All"));
642 StrToStr.Add(TEXT("StrYour"), TEXT("Your"));
643 StrToStr.Add(TEXT("StrBase"), TEXT("Base"));
644
645 StrToVec.Add(TEXT("V000"), FVector(0.0f, 0.0f, 0.0f));
646 StrToVec.Add(TEXT("V123"), FVector(1.0f, 2.0f, 3.0f));
647 StrToVec.Add(TEXT("V666"), FVector(6.0f, 6.0f, 6.0f));
648
649 StrToStruct.Add(TEXT("StructOne"), FStructSerializerBuiltinTestStruct());
650 StrToStruct.Add(TEXT("StructTwo"), FStructSerializerBuiltinTestStruct());
651 }
652
655};
656
660USTRUCT()
662{
664
665 UPROPERTY()
666 TSet<FString> StrSet;
667
668 UPROPERTY()
669 TSet<int32> IntSet;
670
671 UPROPERTY()
672 TSet<FName> NameSet;
673
674 UPROPERTY(meta=(IgnoreForMemberInitializationTest))
676
679 {
680 IntSet.Add(1);
681 IntSet.Add(2);
682 IntSet.Add(3);
683
684 StrSet.Add(TEXT("Are"));
685 StrSet.Add(TEXT("Belong"));
686 StrSet.Add(TEXT("To"));
687 StrSet.Add(TEXT("Us"));
688
689 NameSet.Add(TEXT("Make"));
690 NameSet.Add(TEXT("Your"));
691 NameSet.Add(TEXT("Time"));
692
693 StructSet.Add(FStructSerializerBuiltinTestStruct());
694 }
695
698};
699
703USTRUCT()
705{
707
708 UPROPERTY()
709 TOptional<FString> StrOptional;
710
711 UPROPERTY()
712 TOptional<FString> StrOptionalUnset;
713
714 UPROPERTY()
715 TOptional<int32> IntOptional;
716
717 UPROPERTY()
718 TOptional<int32> IntOptionalUnset;
719
720 UPROPERTY()
721 TOptional<FName> NameOptional;
722
723 UPROPERTY()
724 TOptional<FName> NameOptionalUnset;
725
726 UPROPERTY(meta=(IgnoreForMemberInitializationTest))
728
729 UPROPERTY()
731
732 // At the time of writing, optionals can not be used as keys/values in containers (optionals/arrays/sets/maps).
733
734 // UPROPERTY()
735 // TOptional<TOptional<int32>> OptionalOptionalInt;
736
737 // UPROPERTY()
738 // TArray<TOptional<int32>> ArrayOptionalInt;
739
740 // UPROPERTY()
741 // TSet<TOptional<int32>> SetOptionalInt;
742
743 // UPROPERTY()
744 // TMap<TOptional<int32>, TOptional<int32>> MapOptionalIntOptionalInt;
745
748 : StrOptional(TEXT("Test String"))
749 , IntOptional(1234)
750 , NameOptional(TEXT("Test Name"))
751 , StructOptional(FStructSerializerBuiltinTestStruct())
752 {
753 }
754
757};
758
762USTRUCT()
764{
766
767 UPROPERTY()
769
770 UPROPERTY()
772
773 UPROPERTY()
775
776 UPROPERTY(meta=(IgnoreForMemberInitializationTest))
778
779 UPROPERTY()
781
782 UPROPERTY()
784
785 UPROPERTY()
787
788 UPROPERTY()
790
791 UPROPERTY()
793
796
799 : Numerics(NoInit)
800 , Booleans(NoInit)
801 , Objects(NoInit)
802 , Builtins(NoInit)
803 , Arrays(NoInit)
804 , Maps(NoInit)
805 , Sets(NoInit)
806 , Optionals(NoInit)
807 , LWCTypes(NoInit)
808 { }
809};
#define FORCEINLINE
Definition AndroidPlatform.h:140
ENoInit
Definition CoreMiscDefines.h:158
@ NoInit
Definition CoreMiscDefines.h:158
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
FORCEINLINE uint32 GetTypeHash(const FStructSerializerBuiltinTestStruct &S)
Definition StructSerializerTestTypes.h:506
FORCEINLINE VectorRegister4Float VectorSet(float X, float Y, float Z, float W)
Definition UnrealMathVectorCommon.h.inl:867
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition Text.h:385
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SoftObjectPtr.h:763
Definition SubclassOf.h:30
Definition Class.h:3793
Definition StructSerializerTestTypes.h:16
Definition Object.h:95
Definition TestUtils.cpp:8
@ false
Definition radaudio_common.h:23
Definition Color.h:486
Definition DateTime.h:76
Definition Guid.h:109
Definition StructSerializerTestTypes.h:361
Definition OrientedBox.h:13
Definition SoftObjectPath.h:539
Definition SoftObjectPath.h:56
Definition StructSerializerTestTypes.h:558
FStructSerializerArrayTestStruct(ENoInit)
Definition StructSerializerTestTypes.h:610
Definition StructSerializerTestTypes.h:82
FStructSerializerBooleanTestStruct(ENoInit)
Definition StructSerializerTestTypes.h:130
Definition StructSerializerTestTypes.h:197
bool operator==(const FStructSerializerBuiltinTestStruct &Rhs) const
Definition StructSerializerTestTypes.h:251
FStructSerializerBuiltinTestStruct(ENoInit)
Definition StructSerializerTestTypes.h:249
Definition StructSerializerTestTypes.h:516
FStructSerializerByteArray(ENoInit)
Definition StructSerializerTestTypes.h:549
Definition StructSerializerTestTypes.h:263
FStructSerializerLWCTypesTest(ENoInit)
Definition StructSerializerTestTypes.h:352
Definition StructSerializerTestTypes.h:619
FStructSerializerMapTestStruct(ENoInit)
Definition StructSerializerTestTypes.h:654
Definition StructSerializerTestTypes.h:410
FStructSerializerNonLWCTypesTest(ENoInit)
Definition StructSerializerTestTypes.h:499
Definition StructSerializerTestTypes.h:25
FStructSerializerNumericTestStruct(ENoInit)
Definition StructSerializerTestTypes.h:73
Definition StructSerializerTestTypes.h:139
FStructSerializerObjectTestStruct(ENoInit)
Definition StructSerializerTestTypes.h:187
Definition StructSerializerTestTypes.h:705
FStructSerializerOptionalTestStruct(ENoInit)
Definition StructSerializerTestTypes.h:756
Definition StructSerializerTestTypes.h:662
FStructSerializerSetTestStruct(ENoInit)
Definition StructSerializerTestTypes.h:697
Definition StructSerializerTestTypes.h:764
Definition Timespan.h:76
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition SoftObjectPtr.h:174
Definition WeakObjectPtrTemplates.h:25
Definition BoxSphereBounds.h:25