using System; namespace Robust.Shared.Serialization.Manager.Attributes { /// /// When inheriting a field from a parent, always merge the two fields when such behavior exists. /// This is unlike the normal behavior where the child's field will always overwrite the parent's. ///
/// Merging is done at a YAML level by merging mappings and sequences recursively. ///
/// /// /// - id: Parent /// myField: [Foo, Bar] ///
/// - id: Child /// parents: [Parent] /// myField: [Baz, Qux] ///
/// Which, when deserialized and assuming myField is marked with AlwaysPushInheritance, will result in data that /// looks like this: /// /// - id: Child /// myField: [Foo, Bar, Baz, Qux] /// /// compared to the default behavior: /// /// - id: Child /// myField: [Baz, Qux] /// ///
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] public sealed class AlwaysPushInheritanceAttribute : Attribute { } }