[過去ログ] Rust part16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
726(1): 2022/09/12(月)08:36 ID:tyJETXG8(2/3) AAS
ちょっと意味がわからない
こうなるはずだから困ることはないと思うけど
・最適化によってRustが定めている意味が変わることはない
・pub宣言しているものは中で呼ばれていなくても単体コンパイルで消えることはない
・pub宣言されていないものは中で呼ばれていなければ今後も誰からも呼ばれないためwarningが出て消える
727: 2022/09/12(月)10:25 ID:o/NFQNbK(3/4) AAS
genericな関数だと呼び出し元がないとコード生成されないとか?
728: 2022/09/12(月)12:04 ID:tyJETXG8(3/3) AAS
その場合でも実際に使う型々でtestを書くだろうからcargo testで確認できるでしょ
729(1): 2022/09/12(月)12:46 ID:SjJDv8F6(1) AAS
>>726
ありゃうちの環境の問題か。pub付けただけじゃ関数丸ごとなかったことにされる
pub extern "C"でRust外の入出力にしてようやく消えなくなる
もうちょっと調べてみる
730(1): 2022/09/12(月)14:30 ID:o/NFQNbK(4/4) AAS
>>729
ちなみにターゲットはbinと(r)libのどっち?
binならpubでも消えるかも
731: 2022/09/12(月)19:11 ID:2zIjStdY(1) AAS
>>730
変更してみた。staticlibだとpub付けても消える。rlibなら消えないようだ
とりあえずrlibにしておいてある程度形になってきたら変更すればいいか
コード自体はどっちでも大差ないだろうし
732: 2022/09/18(日)01:08 ID:g4sMxKuf(1) AAS
[u32; LEN]と[ARGB32; LEN] の件、アラインメントが違うからtransmuteの時点でUBだけど
733: 2022/09/19(月)02:33 ID:HMAR4dxa(1/2) AAS
Tauriで動画プレーヤー的なのを作るサンプルってどっかにある?
ただ再生するデータは既存のmp4ファイルなどではなくRustプログラムから渡したい
あと再生、停止、コマ送り、シークなどの基本的な機能は実装したい
734(1): 2022/09/19(月)07:48 ID:BbpMxDy4(1) AAS
TauriってWebアプリのサーバーサイドがRustで一体型プログラムになっているだけだろ?
そして既存のWeb技術を活かせるのがTauriの利点だろ?
そうならば例えばhls.jsなど既存の好みの動画配信再生フレームワークを使えばいいだけじゃないか?
Webサーバーサイドやったことあるならばフロントエンドからファイルに見えているものは本物のファイルである必要はなくサーバーサイドが算出していれば十分だろ?
735: 2022/09/19(月)12:27 ID:HMAR4dxa(2/2) AAS
>>734
>HLS
ちょっと調べてみたけどHLSでいわゆるRAWデータを再生出来るという情報は見つけられていない
特にビデオが未圧縮データを扱えそうにない。オーディオは未圧縮FLACでいけるかもしれないけど
再生したいのがWebブラウザが対応していないデータなのでどうしようか考え中
ビデオはBMPのぱらぱら漫画でオーディオはHLSで未圧縮FLACとか?なんか無駄に実装量が増えるけど
736: 2022/09/19(月)13:11 ID:PTk7Q+2G(1) AAS
その手のやつでオーバーヘッド減らすならOS毎にネイティブ実装するしかなくない?
737: 2022/09/19(月)18:38 ID:EybjBREq(1/2) AAS
なんとかtauri使うにしてもJSやらWASMやらで動画レンダリングするようなもの作らないとだめそう
738(4): 2022/09/19(月)18:45 ID:npVSxydm(1/2) AAS
実装を追加させない方法ってありますか?
別個に渡されたふたつの型が同じであるという制約を付けたいという目的で
以下のようなトレイト Same を定義した場合、実装を追加できてしまうと破綻してしまうので、
なんらかの方法で制限できるだろうかという疑問です。
pub trait Same<T> {}
impl<T> Same<T> for T {}
// 使用例
pub fn foo<T, U>(x: T, y: U)
where
T: Same<U
省4
739(1): 2022/09/19(月)19:32 ID:sJf7ZiDr(1) AAS
trait Sealed {}
pub trait Same<T>: Sealed {}
740(1): 2022/09/19(月)21:19 ID:EybjBREq(2/2) AAS
外部リンク[html]:rust-lang.github.io
741(1): 2022/09/19(月)21:29 ID:Elo9mBmF(1) AAS
ふたつの型が同じという制約を付けたいなら
TとUじゃなくTとTにすればいいじゃんか
742: 2022/09/19(月)21:34 ID:jWPeXdq1(1) AAS
>>738
達成したいことが特にないらしいからなんとも言えないけど enum を使っても近いことはできるんじゃないかな。
enum Same{SameA(型A),SameB(型B)}
みたいにしてやれば、Same 経由で扱う限り実装は増やせないぞ。
743(1): 2022/09/19(月)22:48 ID:npVSxydm(2/2) AAS
>>739-740
実装を追加させないテクニックのひとつとして有用ですし紹介はありがたいです。
しかしそれだと Sealed を実装した型だけにしか使えず、 >>738 で示したような汎用的に型を比較するトレイトには使えないですよね。
この Same のように機能するトレイトに実装を追加させないというのは前提と考えて欲しいです。
>>741
そういうレスが付くことを避けたいから最後の文をつけたつもりなんですが……。
Rust の初心者として様々な言語機能を理解したいという立場で疑問に思った部分を抜き出し、
説明のために前提条件を設定したのであって、前提条件の部分自体は解決したい課題ではないです。
いわゆるXY問題というものの存在は承知しておりますので
解決したい大元の問題を示さないというのがモヤモヤするだろうなというのはわかります。
省2
744: 2022/09/20(火)00:14 ID:nBuFqijL(1) AAS
2つの矛盾してる要求を同時に実現は無理だわな
745: 2022/09/20(火)00:42 ID:FykVNAq+(1/4) AAS
impl Foo for Tが存在する時点で他の型にFoo実装しようとするとconflictしなかったっけ
746: 2022/09/20(火)00:43 ID:FykVNAq+(2/4) AAS
fundamentalな型に一通り実装しておけば良さそう
747: 2022/09/20(火)00:48 ID:FykVNAq+(3/4) AAS
外部リンク:play.rust-lang.org
748: 2022/09/20(火)00:50 ID:FykVNAq+(4/4) AAS
fundamental云々はcoherent ruleの話でconflictとは関係なかったわ
749: 738 2022/09/20(火)01:17 ID:w2qVrruo(1/2) AAS
なるほど、 C++ と違って特殊化にならないからより狭い範囲の実装は追加できないんですね。
&T とか &mut T とかも先に実装しておけば追加の余地をなくせると。
&T とか &mut T とか以外にどういうのがありえますかね?
750(1): 2022/09/20(火)01:40 ID:lHbnVGdk(1) AAS
>>743
Sealedも<T>にすればいいんじゃないの
外部リンク:play.rust-lang.org
751: 738 2022/09/20(火)01:53 ID:w2qVrruo(2/2) AAS
>>750
ありがとうございます。
言われてみれば当然のような感じですがまだまだ私は Rust らしい考え方が出来ていないようです。
752(1): 2022/09/20(火)18:26 ID:p9SiwD2d(1) AAS
「Linux」、バージョン6.1でRustを導入へ--トーバルス氏が明言
外部リンク:japan.zdnet.com
753: 2022/09/20(火)20:25 ID:ckEqOjly(1) AAS
>>752
いいね
ここ最近で一番いい知らせだわ
754: 2022/09/20(火)20:46 ID:Di+jgu/u(1) AAS
今のところデバドラだけという話だけど
基幹部分の新実装をRustで作りましたという
人が絶対現れるからそのときどうなるだろ
755: 2022/09/20(火)20:51 ID:rUHkgvjw(1) AAS
誰もvoldemort typeの名を呼ぼうとしない
上下前次1-新書関写板覧索設栞歴
あと 247 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s