我想制作一个包含可重用库(实现大部分程序)的Rust包,以及使用它的可执行文件.
假设我没有混淆Rust模块系统中的任何语义,我的Cargo.toml文件应该是什么样的?
在src/lib.rs我有以下
extern crate opal_core;
mod functions;
mod context;
mod shader;
Run Code Online (Sandbox Code Playgroud)
然后src/context.rs我有这样的东西,它试图从src/shader.rs以下方面导入符号:
use opal_core::shader::Stage;
use opal_core::shader::Shader as ShaderTrait;
use opal_core::GraphicsContext as GraphicsContextTrait;
use functions::*; // this import works fine
use shader::*; // this one doesn't
pub struct GraphicsContext {
functions: Gl
}
fn shader_stage_to_int(stage: &Stage) -> u32 {
match stage {
&Stage::Vertex => VERTEX_SHADER,
&Stage::Geometry => GEOMETRY_SHADER,
&Stage::Fragment => FRAGMENT_SHADER,
}
}
impl GraphicsContextTrait for GraphicsContext {
/// Creates a shader object
fn create_shader(&self, stage: …Run Code Online (Sandbox Code Playgroud) 我项目的路径结构如下:
demo
??? benches
? ??? crypto_bench.rs
??? src
? ??? main.rs
? ??? crypto.rs
??? Cargo.lock
??? Cargo.toml
Run Code Online (Sandbox Code Playgroud)
crypto.rs包含Crypto带有实现的结构。
crypto.rs通过main.rs使用引用mod crypto;
如何crypto.rs从crypto_bench.rs长椅文件夹中使用?
我已经尝试了各种变化extern crate,mod,super和use。我可以在网上找到的所有示例都是针对带有的图书馆项目,lib.rs并且在将带有main.rs文件的项目使用时,这些“导入”不起作用。
我有一个前端项目,在src文件夹中有很多东西,我有机会在服务器端使用Rust.我的所有Rust服务器文件都在server文件夹中; 我怎么能告诉Cargo运行./server/app.rs?