     
     /**
      * Find a NSLayoutConstraint for a UIView (or a subclass of UIView)
+     *
      * - Parameter edge: PinEdge, Take a look at PinEdge enum for all options
      */
     public func constraint(_ edge: PinEdge) -> NSLayoutConstraint? {

     * Add multiple NSLayoutConstraints to a view, provided in an array.
     * The NSLayoutConstraints value's are calculated from the views frame.
     * Make sure the view is first added to a superview.
     * - Parameter edges: [PinEdge], Array of PinEdge's. Take a look at PinEdge for all options
     */
    public func pin(_ edges: [PinEdge]) {

 */
public enum PinEdge: Hashable {
    
    /// leading (left) relation to the views superview
    case left
    
    /// trailing (right) relation to the views superview
    case right
    
    /// bottom relation to the views superview
    case bottom
    
    /// top relation to the views superview
    case top
    
    /// center x relation to the views superview
    case centerX
    
    /// center y relation to the views superview
    case centerY
    
    /// width relation for the view
    case width
    
    /// height relation for the view
    case height
    
    /// pin the left side of the view to the right side of the (in the enum) provided UIView
    case leftTo(UIView)
    
    /// pin the right side of the view to the left side of the (in the enum) provided UIView
    case rightTo(UIView)
    
    /// pin the bottom side of the view to the top side of the (in the enum) provided UIView
    case bottomTo(UIView)
    
    /// pin the top side of the view to the bottom side of the (in the enum) provided UIView
    case topTo(UIView)
    
    /// pin the width of the view to the width of the (in the enum) provided UIView
    case equalWidth(UIView)
    
    /// pin the height of the view to the height of the (in the enum) provided UIView
    case equalHeight(UIView)
    
    /**
     * Compare two PinEdge's
     *
     * - Parameter lhs: first PinEdge
     * - Parameter rhs: first PinEdge
     * - Returns: Boolean
     */
    public static func ==(lhs: PinEdge, rhs: PinEdge) -> Bool {
        return lhs.hashValue == rhs.hashValue
    }
    
    /**
     * Unique value for a PinEdge, mainly used for comparising
     *
     * - Returns: Int
     */
    public var hashValue: Int {
        switch self {
        case .left:
