Skip to content

Conversation

qryxip
Copy link
Member

@qryxip qryxip commented Jan 24, 2025

内容

#370 から続いている、Rust APIのnewtypeの形を変える。

当時どういう意図だったのかは正確にはわかりませんが、二年経っての現状を鑑みても、「透過的」であるように振る舞った方がよいのではないかと思った次第です。
(一応当時の時点で私はVOICEVOX ONNX Runtimeのアイデアを思い付いて提案してたと思うので、Rust APIを前提にしていたとは思います)

See-also: https://rust-lang.github.io/api-guidelines/type-safety.html#newtypes-provide-static-distinctions-c-newtype

関連 Issue

その他

@qryxip qryxip requested a review from Hiroshiba January 24, 2025 19:02
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!

僕も流石に覚えてないのですが、例えば返り値の型を変えた時、ABIを保ちやすいようにという意図…とかかも…?

@qryxip
Copy link
Member Author

qryxip commented Jan 25, 2025

なるほどです。そういう意味では既に役割は消えているかなと思いました。

FileRawFdとかと違ってRaw…を保持したりする意味はあまり無いかなと。何故なら例えばStyleIdを保持したいのなら、そのままStyleIdを持っておけばよいので。Raw…をそのまま保持したいケースとしては例えばserdeではないシリアライザ(例えばprotobuf?)に詰めたいといったのが考えられますが、そこまで行くとAPIの同一性は保証できないかなと思いました。

補足ありがとうございます!これで安心してマージできそうです。

@qryxip qryxip merged commit ee985ff into VOICEVOX:main Jan 25, 2025
29 checks passed
@qryxip qryxip deleted the feat-make-rust-newtypes-open-and-remove-raw branch January 25, 2025 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants