Skip to content

Repository files navigation

ValueRestriction

XcodeSwiftGitHub tag (latest SemVer)GitHub

What

ValueRestriction is a Swift Package Manager package for iOS/tvOS (10.0 and above), watchOS (4.0 and above), and macOS (10.14 and above), under Swift 5.0 and above, defining an enumeration to easily test a numerical value against some condition:

publicenumValueRestriction<Value>where Value:Comparable{case unrestricted
case equalToOneOf([Value])case notEqualToAnyOf([Value])case smallerThan(Value)case smallerThanOrEqualTo(Value)case largerThan(Value)case largerThanOrEqualTo(Value)case inOpenRange(ClosedRange<Value>)case inOpenClosedRange(ClosedRange<Value>)case inClosedOpenRange(ClosedRange<Value>)case inClosedRange(ClosedRange<Value>)}extensionValueRestriction{publicfunc applied(to value:Value)->Value?publicvarisUnrestricted:BoolpublicvarargumentOfEqualToOneOf:[Value]?publicvarargumentOfNotEqualToAnyOf:[Value]?publicvarargumentOfSmallerThan:Value?publicvarargumentOfSmallerThanOrEqualTo:Value?publicvarargumentOfLargerThan:Value?publicvarargumentOfLargerThanOrEqualTo:Value?publicvarargumentOfInOpenRange:ClosedRange<Value>?publicvarargumentOfInOpenClosedRange:ClosedRange<Value>?publicvarargumentOfInClosedOpenRange:ClosedRange<Value>?publicvarargumentOfInClosedRange:ClosedRange<Value>?}extensionValueRestriction:Equatablewhere Value:Equatable{}extensionValueRestriction:Hashablewhere Value:Hashable{}extensionValueRestriction:Codablewhere Value:Codable{enumCodingKeys:String,CodingKey,CaseIterable{case unrestricted
case equalToOneOf
case notEqualToAnyOf
case smallerThan
case smallerThanOrEqualTo
case largerThan
case largerThanOrEqualTo
case inOpenRange
case inOpenClosedRange
case inClosedOpenRange
case inClosedRange
}publicfunc encode(to encoder:Encoder)throws public init(from decoder:Decoder)throws}

Installation

ValueRestriction is provided only as a Swift Package Manager package, because I'm moving away from CocoaPods and Carthage, and can be easily installed directly from Xcode.

License

ValueRestriction is available under the MIT license. See the LICENSE file for more info.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages