feat!: SupportedDevices
からデシアライズ機能を剥奪
#958
Open
+73
−38
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
内容
#941 の続き。
#941 において
SupportedDevices
も#[non_exhaustive]
にしたが、一つ困った問題が生じた。SupportedDevices
のフィールドは現状全部requiredな形になっている。そしてSupportedDevices
はシリアライズ(オブジェクト → JSONの変換)と共にデシリアライズ(JSON → オブジェクトの変換)もできるようになっているため、このままだとフィールドを追加するのに困る。特に近いうちにROCmを入れたい。解決法としては次の二つが考えられた。
cuda
とdml
、あるいはcpu
も含めた全てのフィールドをoptionalにするrocm
とかをoptionalにし、今あるものはrequiredのままにするSupportedDevices
)の禁止このPRでは3.を選んだ。というのもそもそも
SupportedDevices
のコンストラクトは不要であるべきだからである。BREAKING-CHANGE: Rust, Python, Java APIにおいてJSON →
SupportedDevices
の変換が禁止される。関連 Issue
その他