using System; namespace ScreenConnect; public struct Constraint { public int MaxSize { get; set; } public static Constraint Combine(Constraint baseConstraint, Constraint constraint) { return new Constraint { MaxSize = ((constraint.MaxSize == 0) ? baseConstraint.MaxSize : constraint.MaxSize) }; } public void AssertSizeValid(int size) { if (size < 0) { throw new InvalidOperationException("Size cannot be negative"); } if (MaxSize != 0 && size > MaxSize) { throw new InvalidOperationException("Size too large"); } } }