@NullCodable is a property wrapper that encodes nil optional values as null when encoded using JSONEncoder.
On its own, JSONEncoder will omit optional properties that are nil - meaning that this:
struct Test: Codable {
var name: String? = nil
}will be encoded as: {}.
If for some reason, you would like optional properties that are nil
to be encoded in JSON as null, then marking those properties as @NullCodable
will do so.
For example, adding @NullCodable like this:
struct Test: Codable {
@NullCodable var name: String? = nil
}will encode as: {\"name\": null}.