問題タブ [rust-rocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1163 参照

rust - Rocket ハンドルバーの例を作成する際の未解決のインポート テンプレート

Rocketハンドルバーの例を機能させることができません 。これらは私の Cargo.toml 依存関係です:

エラー:

最初のエラーはTemplate探しても見つかりません。例のgit リポジトリには存在しません。この例がどのように機能する可能性がありますか? main.rs の Rust コードは問題ないと確信しています。例と同じです。依存関係だけの問題だと思います。

Cargo.toml を次のように変更しました。

今、私はこれらのエラーを受け取ります:

0 投票する
1 に答える
659 参照

rust - FromForm 内で JSON を逆シリアル化する場合の有効期間

このコードのライフタイム間の関係を理解するのに苦労しています。x-www-form-urlencoded基本的に、キーが 1 つだけのデータを受け取る Rocket API がありますjson。このキーには、直観的に、パーセントエンコーディングでエンコードされた struct の JSON 値が含まれていますMessage<T>

(これが次善の API 設計であることは承知していますが、これはリバース エンジニアリング作業であるため、選択の余地はありません)

として簡単にリクエストガードとして使えるようにFrom<Message<T>>、 を実装してFromFormいます。そのためには、FromForm<'f>あらゆるMessage<T>場所にT実装する必要がありますDeserialize<'de>。impl 署名を として書きましたimpl<'f, 'de, T> FromForm<'f> for Message<T> where T: Deserialize<'de>

実際にデコードを実行するには、次のようにします。

  1. "json"フォーム データのキーを取得します。
  2. 値を URL デコードします。
  3. 値に含まれる JSON を解析します。

できるだけ早く救済します。それを行うコード (読者の便宜のための明示的な型注釈):

貼り付けて実行する方法で問題を示す Gist (Playground は Rocket に依存しているため、Playground では機能しません)。

私が理解しているように:

  • &RawStrof にencodedはライフタイムがあります'f
  • AStringは によってそれから作成されurl_decode、関数の最後まで存続します
  • serde_jsonと一致する必要のない&'x str場所を取り、値を返します(したがって、関数の最後まで存続し、返されるため、それを超えて移動されます)'x'de

しかし、私の理解は間違っているようです:

何が間違っているのですか?どうすればデシリアライズされた値を適切に返すことができますか?

0 投票する
1 に答える
477 参照

rust - Rocket がルートに一致する URL の RawStr を解析しない

Rocket のサイトのガイドでは、動的ルートをランク付けできることが示唆されています。この例では、ルートの一致基準として動的部分にさまざまなタイプを使用しています。以外の URL を入力するとusize、次のエラーが発生します。

私が使用しているコード:

テスト404 errorを表示する際にページの代わりに期待します。なぜこれをしていないのですか?/user/threelast rank

0 投票する
1 に答える
1036 参照

rust - Rust/Rocket は `state` と `pear_codegen` をコンパイルできません

私は Rust と Rocket を使い始めています。

Rocket Getting Startedの指示に従っていますが、「エラー: コンパイルできませんでしstateた」というメッセージが表示されます。完全なログはこちら:`

~/.cargo/bin/cargo run レジストリを更新していますhttps://github.com/rust-lang/crates.io-index Rocket_codegen v0.3.3 をダウンロードしています Rocket v0.3.3 をダウンロードしています
gcc v0.3.54 をコンパイルしています smallvec v0.4.4 をコンパイルしています libc v0.2.34 をコンパイルしています version_check v0.1.3 をコンパイルしています language-tags v0.2.2 をコンパイルしています serde v1.0.23 コンパイル状態 v0.3.2 error[E0554]: #![feature] may not be used on the stable release channel --> /Users/ktenjin/.cargo/registry/src/github.com-1ecc6299db9ec823/state- 0.3.2/src/lib.rs:1:1 | 1 | #![feature(const_fn)] | ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] は安定版リリース チャンネルでは使用できない可能性があります --> /Users/ktenjin/.cargo/registry/src/github.com-1ecc6299db9ec823/state-0.3.2/src/lib. rs:2:1 | 2 | #![feature(const_unsafe_cell_new)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] は安定版リリース チャンネルでは使用できない可能性があります --> /Users/ktenjin/.cargo/registry/src/github.com-1ecc6299db9ec823/state-0.3.2/src/lib. rs:3:1 | 3 | #![feature(const_atomic_usize_new)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] は安定版リリース チャンネルでは使用できない可能性があります --> /Users/ktenjin/.cargo/registry/src/github.com-1ecc6299db9ec823/state-0.3.2/src/lib. rs:4:1 | 4 | #![feature(const_atomic_bool_new)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

エラー: 4 つの前のエラーが原因で中止します

エラー: コンパイルできませんでしstateた。警告: ビルドに失敗しました。他のジョブが終了するのを待っています... エラー: ビルドに失敗しました

もう一度実行すると、

エラー: コンパイルできませんでしpear_codegenた。

これを解決するにはどうすればよいですか。助けてください!ありがとう!