I want to implement some support for HTTP Headers in enums, such that I can 
write this:

extension
NSMutableURLRequest
{
        func
        set(inHeader : String, _ inVal : String)
        {
                self.setValue(inVal.rawValue, forHTTPHeaderField: 
inHeader.rawValue())
        }
}

and then call it like this:

        req.set(.ContentType, .JSON)
        req.set(.ContentType, "some other type")

where

enum
HTTPHeader : String
{
        case Accept                     =       "Accept"
        case ContentDisposition         =       "Content-Disposition"
        case ContentLength              =       "Content-Length"
        case ContentType                =       "Content-Type"
        case Authorization              =       "Authorization"
        case Date                       =       "Date"
        case IfModifiedSince            =       "If-Modified-Since"
        case UserAgent                  =       "User-Agent"


enum
HTTPContentType : String
{
        case JSON                       =       "application/json"
        case JSONUTF8                   =       "application/json; 
charset=UTF-8"
        case OctetStream                =       "application/octet-stream"
}

That is, I'd like to not have to explicitly call .rawValue() every time I use 
one of the enum cases, and I'd like the Header field name to be one enum, and 
the value to be any of a number of different enums. Finally, I'd like to be 
able to call set() with one or both parameters of type String, but I think I 
can accomplish that with overloading.

Unfortunately, I can't figure out how to make a set of enum types I define 
conform to a single type (protocol, class, or "abstract enum") such that Swift 
doesn't complain.

Any suggestions? Thanks.

-- 
Rick Mann
rm...@latencyzero.com



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to