小编mgu*_*gul的帖子

错误:本机库`openssl`由同一个包的多个版本链接

当我尝试货物构建时,我正面临这个问题:

错误:本机库openssl由同一个包的多个版本链接,但它只能链接一次; 尝试更新或固定您的依赖项以确保此程序包仅显示一次

openssl-sys v0.6.7

openssl-sys v0.7.13
Run Code Online (Sandbox Code Playgroud)

Cargo和Rust版本:

$ cargo --version
cargo 0.11.0-nightly (3ff108a 2016-05-24)

$ rustc --version
rustc 1.11.0-nightly (7746a334d 2016-05-28)
Run Code Online (Sandbox Code Playgroud)

文件:

无法得到为什么这不编译以及如何解决这个问题.谢谢!

openssl rust rust-cargo

11
推荐指数
1
解决办法
1218
查看次数

谷歌地图JS API - 获取西北和东南边界

我正在使用谷歌地图javascript API,我需要获取当前视口的边界.
我试图用map.getBounds();getNorthEast()...等,但问题是我需要的北西,和南方地区的坐标,而不是东北和西南地区.

有什么方法可以获得这些边界或"转换"API给我的界限到达西北和东南?

谢谢

google-maps google-maps-api-3

6
推荐指数
1
解决办法
5287
查看次数

如何使用 postgres crate 处理查询返回的可选值?

我正在尝试获取查询的值,但该值可能为 NULL,而且我不知道如何在 Rust 中处理它。这是我的代码:

let stmt = conn.prepare("SELECT * FROM pictures").unwrap();

for row in stmt.query(&[]).unwrap() {
    let id: i32 = row.get("id");
    let author: String = row.get("author");
    let description: String = row.get("description");

    let rating: String = row.get("rating");

    let gps_lat: String = row.get("gps_lat");
    let gps_long: String = row.get("gps_long");
    let date_taken: chrono::NaiveDate = row.get("date_taken");

    println!("id        -> {}\n
           author      -> {}\n
           description -> {}\n
           rating      -> {}\n
           gps_lat     -> {}\n
           gps_long    -> {}\n
           date        -> {}\n
       ", id, author, description, rating, gps_lat, gps_long, date_taken); …
Run Code Online (Sandbox Code Playgroud)

postgresql rust

4
推荐指数
1
解决办法
1484
查看次数

我可以为单个结构以不同的方式多次实现相同的特征吗?

我想根据情况以两种不同的方式序列化结构,但我面临一个问题:以我目前的知识,我只能以一种方式序列化结构。

这是我的代码#[derive(Serialize)](自动派生)

#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct TransactionContent {
    sender_addr: Vec<u8>,
    sender_pubkey: Vec<u8>,
    receiver_addr: Vec<u8>,
    amount: u32,
    timestamp: i64
}
Run Code Online (Sandbox Code Playgroud)

我使用的bincode::serialize序列化我的结构,使之成为Vec<u8>想给结构存储在一个JSON文件。当序列化为 JSON 时,我想以我自己的方式序列化它,比如为Vec<u8>字段返回一个 base58 字符串。

这是我自己的实现:

impl Serialize for TransactionContent {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
        where S: Serializer
    {
        let mut state = serializer.serialize_struct("TransactionContent", 5)?;
        state.serialize_field("sender_addr", &self.sender_addr.to_base58())?;
        state.serialize_field("sender_pubkey", &self.sender_pubkey.to_base58())?;
        state.serialize_field("receiver_addr", &self.receiver_addr.to_base58())?;
        state.serialize_field("amount", &self.amount)?;
        state.serialize_field("timestamp", &self.timestamp)?;
        state.end()
    }
}
Run Code Online (Sandbox Code Playgroud)

我不能同时使用上面的代码。如果我使用自动派生,则第二个Impl是不可能的。如果我使用第二个,该bincode::serialize功能将工作,但不是我想要的(我想使用Vec<u8>它)

有没有办法可以同时使用两者Impl …

serialization struct rust

4
推荐指数
1
解决办法
973
查看次数

YouTube播放列表长度

我想知道是否有办法获得播放列表中的总视频数量.

我正在构建一个Python脚本,需要获取要循环播放的视频数量.或者,如果无法获取此信息,您能否在没有for循环的情况下为我提供一种方法?

youtube youtube-api

2
推荐指数
1
解决办法
3207
查看次数

读取红宝石后变量的内容更改

我是ruby的新手(昨天开始),我正在与sinatra一起玩以构建API。我遇到了一个使我毫无头绪的问题:

post '/login' do
    if request.body.read.length == 0
       halt 400 # bad request 
    else
        body = JSON.parse(request.body.read)
    end
end
Run Code Online (Sandbox Code Playgroud)

执行此代码时,出现错误,因为尝试使用解析空字符串body = JSON.parse(request.body.read)。实际上,我必须保存request.body.read另一个变量才能使用两次(或多次),因为它就像request.body在第一次使用后被“消耗掉”。

这让我想起了锈蚀的借口,但是在这里我没想到,也无法在Google上表达它来查找任何文档。谁能解释我发生了什么,为什么request.body只有一次可读?

对于有相同问题(我们永远不知道)的人,这里的解决方法是:

post '/login' do
    body = request.body.read

    if body.length == 0
        halt 400 # bad request
    else
        body_json = JSON.parse(body)
    end
end
Run Code Online (Sandbox Code Playgroud)

我听说过IO对象,但是我仍然无法进一步研究。

ruby sinatra

1
推荐指数
1
解决办法
67
查看次数