fwcd / fwcd/swift-binary-coder
Investigate how to fix untagged enum serialization
- Ngôn ngữ chính
- Swift
- Star
- 4
- Fork
- 1
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Since the synthesized `Encodable` implementation for enums is externally tagged by key and we discard keys during encoding, enums currently use a completely untagged representation, which can make it hard to distinguish cases during decoding.
As described [in the test case](https://github.com/fwcd/swift-binary-coder/blob/5270e91c53e2b75a32c8383de74743233d8aab7a/Tests/BinaryCoderTests/BinaryEncoderTests.swift#L36-L39), we should investigate whether non-`.untaggedAndAmbiguous` strategies should throw an error, even though there may be a runtime cost to detect whether a type is an enum (e.g. through reflection)?
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu với test case được tham chiếu trong Tests/BinaryCoderTests/BinaryEncoderTests.swift ở các dòng 36-39, sau đó kiểm tra các encoding strategy hiện có và cách xử lý enum. Xác định liệu các strategy khác .untaggedAndAmbiguous có nên từ chối enum không có tag hay không, đồng thời xác định cách việc phát hiện đó sẽ được kiểm chứng; issue hoàn tất khi behavior và runtime tradeoff của nó được giải quyết.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- swift
- Lĩnh vực
- tooling
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100