我正在尝试使用 Serde基于以下结构反序列化 JSON ( serde-json) 和 XML ( serde-xml-rs) 文件:
use serde_derive::Deserialize;
#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct SchemaConfig {
pub name: String,
#[serde(rename = "Cube")]
pub cubes: Vec<CubeConfig>,
}
Run Code Online (Sandbox Code Playgroud)
我正在反序列化的字段根据文件类型具有不同的名称。在这种情况下,我希望 JSON 文件有一个cubes包含多维数据集列表的键,但 XML 中的等效项是多个<Cube />元素。
我不知道如何同时接受cubes和Cube作为反序列化的键。我发现的最接近的是#[serde(rename = "Cube")]选项,但是当我使用 JSON 反序列化停止工作时,因为它只接受Cube密钥。如果我删除该选项,XML 反序列化将停止工作,因为它只接受cubes作为键。
有没有一种简单的方法可以在 Serde 中实现这一点?
我有两张表,一张是关于县的数据,另一张是关于州的数据。不同的州有时会有完全相同的县名,所以我试图unique_name在我的县表中填充一列,该列是县名和该县所在州的缩写的串联(例如:Honolulu County, HI )。
我提出了以下查询:
ALTER TABLE counties
UPDATE unique_name =
(
SELECT concat(counties.name, ', ', states.name_abbr)
FROM counties
INNER JOIN states
ON counties.statefp = states.statefp
) WHERE unique_name = ''
Run Code Online (Sandbox Code Playgroud)
但是,我不断收到以下错误:
DB::Exception: Unknown identifier: states.statefp, context: required_names: 'states.statefp' source_tables: table_aliases: private_aliases: column_aliases: public_columns: masked_columns: array_join_columns: source_columns: .
Run Code Online (Sandbox Code Playgroud)
内部查询本身运行良好,但我不明白为什么当我尝试进行更新时会出现此错误。有任何想法吗?
我有一个用于多线程应用程序的简单代码,但是无论我传递它的线程数是多少,它都只能使用一个线程执行。最初,我认为这是计算机的问题,但是我尝试了另一台计算机,但是它也无法正常工作。我有什么事吗 如果有帮助,我正在使用Visual Studio 2015。
int th_id, nthreads;
#pragma omp parallel private(th_id) shared(nthreads) num_threads(3)
{
th_id = omp_get_thread_num();
#pragma omp critical
{
cout << "Hello World from thread " << th_id << '\n';
}
#pragma omp barrier
#pragma omp master
{
nthreads = omp_get_num_threads();
cout << "There are " << nthreads << " threads" << '\n';
}
}
Run Code Online (Sandbox Code Playgroud)