如何将具有非静态寿命的对象传递给Rocket manage?目前,我遵循以下原则:
fn foo<'a>(bar: Bar<'a>) -> Result<(), Error> {
rocket::ignite()
.manage(bar)
.mount("/", routes![index])
.launch();
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
cannot infer an appropriate lifetime due to conflicting requirements
note: ...so that the expression is assignable:
expected bar::Bar<'_>
found bar::Bar<'a>
note: but, the lifetime must be valid for the static lifetime...
Run Code Online (Sandbox Code Playgroud)
要添加更多上下文,Bar是一个struct包含框的闭包,它们使用运行时参数进行初始化。args包含密码,密钥和机密之类的东西-实际代码是开源的,因此可以在此处找到。它是WIP,所以会有所变化,并且不是最新的,但希望能为最终目标提供一个思路。
我可以cfg!(debug_assertions)用来检查 Rust 项目是否在开发模式下运行,但我想知道如何检查是否正在运行测试。我可以在if语句中使用类似的测试标志吗?
原因是为了防止在运行集成测试时写入数据库。
我尝试使用graphql-upload的GraphQLUpload标量向 GraphQL 端点添加上传参数:
import { FileUpload, GraphQLUpload } from 'graphql-upload'
@Mutation(() => Image, { nullable: true })
async addImage(@Args({name: 'image', type: () => GraphQLUpload}) image: FileUpload): Promise<Image | undefined> {
// do stuff...
}
Run Code Online (Sandbox Code Playgroud)
这最初奏效了。然而,几次运行后,它开始返回以下错误:
"Variable \"$image\" got invalid value {}; Expected type Upload. Upload value invalid."
Run Code Online (Sandbox Code Playgroud)
尝试使用 Insomnia 客户端和 curl 进行测试:
"Variable \"$image\" got invalid value {}; Expected type Upload. Upload value invalid."
Run Code Online (Sandbox Code Playgroud) 默认情况下,在Kubernetes NGINX入口中启用SSL重定向.怎么能被禁用?目前的实施如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: project_name-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: project_name
servicePort: 80
Run Code Online (Sandbox Code Playgroud) 遵循Rust的Docker文档之后,如果cargo new没有得到,我无法使用创建一个新项目could not determine the current user, please set $USER。这是我正在使用的命令:
docker run -it --rm -v "$PWD":/app -w /app rust:1.27.0-slim-stretch cargo new project --bin
Run Code Online (Sandbox Code Playgroud)