小编jmo*_*ggr的帖子

从匹配到Err(e)的返回值

我正在尝试在Rust中编写一个简单的TCP echo服务器,我对如何将匹配的值返回到Err感到困惑.

我知道返回类型应该是usize,并且我想返回零.在其他语言中,我只是,return 0;但Rust不会让我.我也试过了usize::Zero().我确实通过这样let s:usize = 0; s做得到它,但这看起来非常愚蠢,我想有更好的方法来做到这一点.

let buffer_length =  match stream.read(&mut buffer) {
    Err(e) => {
         println!("Error reading from socket stream: {}", e);
         // what do i return here?
         // right now i just panic!
         // return 0;
    },
    Ok(buffer_length) => {
        stream.write(&buffer).unwrap();
        buffer_length
    },
};
Run Code Online (Sandbox Code Playgroud)

我知道我也可能只是没有match返回任何内容并且buffer_lengthmatch函数调用之内消耗,但在这种情况下我不想这样做.

处理这样的事情最常用的方法是什么?

rust

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

使用带有emscripten的库

我刚开始使用Emscripten,并希望开始使用GLFW和其他库.我完全迷失了如何使用Emscripten构建,链接和使用其他库.

我曾尝试按照Emscripten网站上的说明进行操作,但他们没有帮助我. http://kripken.github.io/emscripten-site/docs/compiling/Building-Projects.html#using-libraries

有没有关于如何使用Emscripten库的详细说明?或者特别是GLFW?

c++ glfw emscripten

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

将emscripten与opengl着色器一起使用

我无法让emscripten使用openGL着色器.该项目使用emscripten和gcc编译得很好但是当我尝试运行emscripten输出时失败.

我从编译顶点着色器得到的错误:

ERROR: 0:1: 'core' : invalid version directive 
ERROR: 0:3: 'layout' : syntax error 
Run Code Online (Sandbox Code Playgroud)

我从编译片段着色器得到的错误:

ERROR: 0:1: 'core' : invalid version directive 
ERROR: 0:3: 'in' : storage qualifier supported in GLSL ES 3.00 only  
ERROR: 0:3: '' : No precision specified for (float) 
ERROR: 0:5: 'out' : storage qualifier supported in GLSL ES 3.00 only   
ERROR: 0:5: '' : No precision specified for (float) 
Run Code Online (Sandbox Code Playgroud)

我正在使用以下命令编译此项目:

em++ src/*.cpp -Iinclude/ -o test.html -std=c++11 -s USE_GLFW=3 -s FULL_ES3=1
Run Code Online (Sandbox Code Playgroud)

顶点着色器源:

#version 330 core …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl emscripten

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

标签 统计

c++ ×2

emscripten ×2

glfw ×1

glsl ×1

opengl ×1

rust ×1