代码之家  ›  专栏  ›  技术社区  ›  Synesso

如何使用熨斗创建自定义内容类型?

  •  1
  • Synesso  · 技术社区  · 6 年前

    Content-Type: application/x-protobuf 在我的铁杆网络应用程序中。

    我可以从铁制文件中看到 it's possible to construct content-types ,但没有 SubLevel 对应于protobuf。

    如何创建此内容类型值?

    let mut headers = Headers::new();
    headers.set(ContentType(Mime(TopLevel::Application, SubLevel::???, vec![])));
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   Shepmaster Tim Diekmann    6 年前

    但是没有 SubLevel 对应于protobuf。

    the documentation for SubLevel ,您将看到它的定义:

    pub enum SubLevel {
        Star,
        Plain,
        // ... snip ...
        Ogg,
        Ext(String),
    }
    

    因此,您需要:

    extern crate iron; // 0.6.0
    
    use iron::{
        headers::ContentType,
        mime::{Mime, SubLevel, TopLevel},
        Headers,
    };
    
    fn main() {
        let mut headers = Headers::new();
        headers.set(ContentType(Mime(
            TopLevel::Application,
            SubLevel::Ext("x-protobuf".into()),
            vec![],
        )));
    }