Skip to content

Commit 83e0975

Browse files
committed
add serdeIgnore * IfAggregate attributes
1 parent 8c0b991 commit 83e0975

1 file changed

Lines changed: 53 additions & 4 deletions

File tree

source/mir/serde.d

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,11 +439,15 @@ version(mir_test) unittest
439439

440440
/++
441441
Attribute to ignore field.
442+
443+
See_also: $(LREF serdeIgnoreIn) $(LREF serdeIgnoreOut)
442444
+/
443445
enum serdeIgnore;
444446

445447
/++
446448
Attribute to ignore field during deserialization.
449+
450+
See_also: $(LREF serdeIgnoreInIfAggregate)
447451
+/
448452
enum serdeIgnoreIn;
449453

@@ -510,16 +514,61 @@ Use this attributes only for strings that would not be used after the input data
510514
deprecated("use @serdeScoped @serdeProxy!(const(char)[]) instead") enum serdeScopeStringProxy;
511515

512516
/++
513-
Attributes to out conditional ignore field during serialization.
517+
Attributes to conditional ignore field during serialization.
514518
515-
The predicate should be aplied to the aggregate type itself, not to the member.
519+
The predicate should be aplied to the member, to the aggregate type.
520+
521+
See_also: $(LREF serdeIgnoreOutIfAggregate)
516522
+/
517523
struct serdeIgnoreOutIf(alias pred);
518524

519525
/++
520526
+/
521527
alias serdeGetIgnoreOutIf(alias symbol) = naryFun!(TemplateArgsOf!(getUDA!(symbol, serdeIgnoreOutIf))[0]);
522528

529+
/++
530+
Attributes to conditional ignore field during serialization.
531+
532+
The attribute can be combined with $(LREF serdeOrderedIn), $(LREF serdeRealOrderedIn).
533+
534+
The predicate should be aplied to the aggregate value, not to the member.
535+
536+
See_also: $(LREF serdeIgnoreIfAggregate) $(LREF serdeIgnoreOutIf), $(LREF serdeIgnoreInIfAggregate)
537+
+/
538+
struct serdeIgnoreOutIfAggregate(alias pred);
539+
540+
/++
541+
+/
542+
alias serdeGetIgnoreOutIfAggregate(alias symbol) = naryFun!(TemplateArgsOf!(getUDA!(symbol, serdeIgnoreOutIfAggregate))[0]);
543+
544+
/++
545+
Attributes to conditional ignore field during deserialization.
546+
547+
The predicate should be aplied to the aggregate value, not to the member.
548+
549+
See_also: $(LREF serdeIgnoreIfAggregate) $(LREF serdeIgnoreOutIfAggregate) $(LREF serdeIgnoreIn)
550+
+/
551+
struct serdeIgnoreInIfAggregate(alias pred);
552+
553+
/++
554+
+/
555+
alias serdeGetIgnoreInIfAggregate(alias symbol) = naryFun!(TemplateArgsOf!(getUDA!(symbol, serdeIgnoreInIfAggregate))[0]);
556+
557+
/++
558+
Attributes to conditional ignore field during serialization and deserialization.
559+
560+
The attribute can be combined with $(LREF serdeOrderedIn), $(LREF serdeRealOrderedIn).
561+
562+
The predicate should be aplied to the aggregate value, not to the member.
563+
564+
See_also: $(LREF serdeIgnoreOutIfAggregate) $(LREF serdeIgnoreInIfAggregate) $ $(LREF serdeIgnore)
565+
+/
566+
struct serdeIgnoreIfAggregate(alias pred);
567+
568+
/++
569+
+/
570+
alias serdeGetIgnoreIfAggregate(alias symbol) = naryFun!(TemplateArgsOf!(getUDA!(symbol, serdeIgnoreIfAggregate))[0]);
571+
523572
/++
524573
Allows to use flexible deserialization rules such as conversion from input string to numeric types.
525574
+/
@@ -1768,7 +1817,7 @@ UDA used to force deserializer to initilize members in the order of their defini
17681817
The attribute force deserializer to create a dummy type (recursively), initializer its fields and then assign them to
17691818
to the object members (fields and setters) in the order of their definition.
17701819
1771-
See_also: $(LREF SerdeOrderedDummy), $(LREF serdeRealOrderedIn).
1820+
See_also: $(LREF SerdeOrderedDummy), $(LREF serdeRealOrderedIn), $(LREF serdeIgnoreInIfAggregate).
17721821
+/
17731822
enum serdeOrderedIn;
17741823

@@ -1778,7 +1827,7 @@ UDA used to force deserializer to initilize members in the order of their defini
17781827
Unlike $(LREF serdeOrderedIn) `serdeRealOrderedDummy` force deserialzier to iterate all DOM keys for each object deserialization member.
17791828
It is slower but more universal approach.
17801829
1781-
See_also: $(LREF serdeOrderedIn).
1830+
See_also: $(LREF serdeOrderedIn), $(LREF serdeIgnoreInIfAggregate)
17821831
+/
17831832
enum serdeRealOrderedIn;
17841833

0 commit comments

Comments
 (0)