-
-
Notifications
You must be signed in to change notification settings - Fork 141
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add IgnoreObsoleteMembers (#392)
- Loading branch information
1 parent
18dec45
commit def10cf
Showing
20 changed files
with
628 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30 changes: 30 additions & 0 deletions
30
src/Riok.Mapperly.Abstractions/IgnoreObsoleteMembersStrategy.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
namespace Riok.Mapperly.Abstractions; | ||
|
||
/// <summary> | ||
/// Defines the strategy to use when mapping members marked with <see cref="ObsoleteAttribute"/>. | ||
/// Note that <see cref="MapPropertyAttribute"/> will always map <see cref="ObsoleteAttribute"/> marked members, | ||
/// even if they are ignored. | ||
/// </summary> | ||
[Flags] | ||
public enum IgnoreObsoleteMembersStrategy | ||
{ | ||
/// <summary> | ||
/// Maps <see cref="ObsoleteAttribute"/> marked members. | ||
/// </summary> | ||
None = 0, | ||
|
||
/// <summary> | ||
/// Will not map <see cref="ObsoleteAttribute"/> marked source or target members. | ||
/// </summary> | ||
Both = ~None, | ||
|
||
/// <summary> | ||
/// Ignores source <see cref="ObsoleteAttribute"/> marked members. | ||
/// </summary> | ||
Source = 1 << 0, | ||
|
||
/// <summary> | ||
/// Ignores target <see cref="ObsoleteAttribute"/> marked members. | ||
/// </summary> | ||
Target = 1 << 1, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
src/Riok.Mapperly.Abstractions/MapperIgnoreObsoleteMembersAttribute.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
namespace Riok.Mapperly.Abstractions; | ||
|
||
/// <summary> | ||
/// Specifies options for obsolete ignoring strategy. | ||
/// </summary> | ||
[AttributeUsage(AttributeTargets.Method)] | ||
public sealed class MapperIgnoreObsoleteMembersAttribute : Attribute | ||
{ | ||
/// <summary> | ||
/// Specifies options for obsolete ignoring strategy. | ||
/// </summary> | ||
/// <param name="ignoreObsoleteStrategy">The strategy to be used to map <see cref="ObsoleteAttribute"/> marked members. Defaults to <see cref="IgnoreObsoleteMembersStrategy.Both"/>.</param> | ||
public MapperIgnoreObsoleteMembersAttribute(IgnoreObsoleteMembersStrategy ignoreObsoleteStrategy = IgnoreObsoleteMembersStrategy.Both) | ||
{ | ||
IgnoreObsoleteStrategy = ignoreObsoleteStrategy; | ||
} | ||
|
||
/// <summary> | ||
/// The strategy used to map <see cref="ObsoleteAttribute"/> marked members. | ||
/// </summary> | ||
public IgnoreObsoleteMembersStrategy IgnoreObsoleteStrategy { get; } | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 changes: 4 additions & 1 deletion
5
src/Riok.Mapperly/Configuration/PropertiesMappingConfiguration.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,10 @@ | ||
using Riok.Mapperly.Abstractions; | ||
|
||
namespace Riok.Mapperly.Configuration; | ||
|
||
public record PropertiesMappingConfiguration( | ||
IReadOnlyCollection<string> IgnoredSources, | ||
IReadOnlyCollection<string> IgnoredTargets, | ||
IReadOnlyCollection<PropertyMappingConfiguration> ExplicitMappings | ||
IReadOnlyCollection<PropertyMappingConfiguration> ExplicitMappings, | ||
IgnoreObsoleteMembersStrategy IgnoreObsoleteMembersStrategy | ||
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.