Skip to content

Consider using var default values as replacement for CodableDefault #2001

Description

@kperryua

Based on forum discussions here, consider using var default values as a replacement for @CodableDefault macros:

struct BlogPost {
    var required: Int
    var items: [String] = []
}

decode(BlogPost.self, from: data) // { "required" : 1, "items": ["hello"] }
// -> BlogPost(required: 1, items: ["hello"])

decode(BlogPost.self, from: data) // { "required" : 1 }
// -> BlogPost(required: 1, items: [])

decode(BlogPost.self, from: data) // { "items": ["hello"] }
// ❌ error, missing field

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestnew-codableRelated to new Swift (de)serialization APIs

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions