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