Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Commit protos instead of generating them as part of the build #278

Merged
merged 1 commit into from
Jan 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,15 @@ jobs:
run: cargo clippy -- -D warnings
- name: Check for non-default features
run: cargo check --no-default-features --features rustls-021
- name: Run cargo format
run: cargo fmt --check
- name: Generate code
run: cargo run --bin cognite-codegen && cargo fmt --all
- name: Verify generated code matches committed code
run: |
if [[ -n $(git status --porcelain) ]]; then
echo "Workspace is not clean, it has not been formatted, or codegen is not up to date"
git status --porcelain
exit 1
fi
- name: Test
run: cargo test --features=integration_tests
env:
Expand Down
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[workspace]
members = [
"cognite"
"cognite",
"cognite-codegen"
]
resolver = "2"
7 changes: 7 additions & 0 deletions cognite-codegen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[package]
name = "cognite-codegen"
version = "0.1.0"
edition = "2021"

[dependencies]
prost-build = "^0.13"
15 changes: 15 additions & 0 deletions cognite-codegen/src/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
fn main() -> std::io::Result<()> {
std::fs::create_dir_all("cognite/src/dto/core/datapoint/generated")?;
prost_build::Config::new()
.out_dir("cognite/src/dto/core/datapoint/generated")
.compile_protos(
&[
"cognite-codegen/proto/data_point_insertion_request.proto",
"cognite-codegen/proto/data_point_list_response.proto",
"cognite-codegen/proto/data_points.proto",
],
&["cognite-codegen/proto/"],
)?;

Ok(())
}
3 changes: 0 additions & 3 deletions cognite/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,3 @@ wiremock = "0.6.0"
once_cell = { version = "1.19.0" }
uuid = { version = "1.10.0", features = ["v4"] }
wiremock = "0.6.0"

[build-dependencies]
prost-build = "^0.13"
12 changes: 0 additions & 12 deletions cognite/build.rs

This file was deleted.

8 changes: 2 additions & 6 deletions cognite/src/dto/core/datapoint.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
mod filter;
#[allow(clippy::all)]
#[allow(missing_docs)]
mod proto {
include!(concat!(
env!("OUT_DIR"),
"/com.cognite.v1.timeseries.proto.rs"
));
}
#[path = "datapoint/generated/com.cognite.v1.timeseries.proto.rs"]
mod proto;
mod status_code;

use std::convert::TryFrom;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Status {
#[prost(int64, tag = "1")]
pub code: i64,
#[prost(string, tag = "2")]
pub symbol: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NumericDatapoint {
#[prost(int64, tag = "1")]
pub timestamp: i64,
#[prost(double, tag = "2")]
pub value: f64,
#[prost(message, optional, tag = "3")]
pub status: ::core::option::Option<Status>,
#[prost(bool, tag = "4")]
pub null_value: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NumericDatapoints {
#[prost(message, repeated, tag = "1")]
pub datapoints: ::prost::alloc::vec::Vec<NumericDatapoint>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StringDatapoint {
#[prost(int64, tag = "1")]
pub timestamp: i64,
#[prost(string, tag = "2")]
pub value: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub status: ::core::option::Option<Status>,
#[prost(bool, tag = "4")]
pub null_value: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StringDatapoints {
#[prost(message, repeated, tag = "1")]
pub datapoints: ::prost::alloc::vec::Vec<StringDatapoint>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AggregateDatapoint {
#[prost(int64, tag = "1")]
pub timestamp: i64,
#[prost(double, tag = "2")]
pub average: f64,
#[prost(double, tag = "3")]
pub max: f64,
#[prost(double, tag = "4")]
pub min: f64,
#[prost(double, tag = "5")]
pub count: f64,
#[prost(double, tag = "6")]
pub sum: f64,
#[prost(double, tag = "7")]
pub interpolation: f64,
#[prost(double, tag = "8")]
pub step_interpolation: f64,
#[prost(double, tag = "9")]
pub continuous_variance: f64,
#[prost(double, tag = "10")]
pub discrete_variance: f64,
#[prost(double, tag = "11")]
pub total_variation: f64,
#[prost(double, tag = "12")]
pub count_good: f64,
#[prost(double, tag = "13")]
pub count_uncertain: f64,
#[prost(double, tag = "14")]
pub count_bad: f64,
#[prost(double, tag = "15")]
pub duration_good: f64,
#[prost(double, tag = "16")]
pub duration_uncertain: f64,
#[prost(double, tag = "17")]
pub duration_bad: f64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregateDatapoints {
#[prost(message, repeated, tag = "1")]
pub datapoints: ::prost::alloc::vec::Vec<AggregateDatapoint>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InstanceId {
#[prost(string, tag = "1")]
pub space: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub external_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPointInsertionItem {
#[prost(
oneof = "data_point_insertion_item::TimeSeriesReference",
tags = "1, 2, 5"
)]
pub time_series_reference:
::core::option::Option<data_point_insertion_item::TimeSeriesReference>,
#[prost(oneof = "data_point_insertion_item::DatapointType", tags = "3, 4")]
pub datapoint_type: ::core::option::Option<data_point_insertion_item::DatapointType>,
}
/// Nested message and enum types in `DataPointInsertionItem`.
pub mod data_point_insertion_item {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TimeSeriesReference {
#[prost(int64, tag = "1")]
Id(i64),
#[prost(string, tag = "2")]
ExternalId(::prost::alloc::string::String),
#[prost(message, tag = "5")]
InstanceId(super::InstanceId),
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum DatapointType {
#[prost(message, tag = "3")]
NumericDatapoints(super::NumericDatapoints),
#[prost(message, tag = "4")]
StringDatapoints(super::StringDatapoints),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPointInsertionRequest {
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<DataPointInsertionItem>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPointListItem {
#[prost(int64, tag = "1")]
pub id: i64,
#[prost(string, tag = "2")]
pub external_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "11")]
pub instance_id: ::core::option::Option<InstanceId>,
#[prost(bool, tag = "6")]
pub is_string: bool,
#[prost(bool, tag = "7")]
pub is_step: bool,
#[prost(string, tag = "8")]
pub unit: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub next_cursor: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub unit_external_id: ::prost::alloc::string::String,
#[prost(oneof = "data_point_list_item::DatapointType", tags = "3, 4, 5")]
pub datapoint_type: ::core::option::Option<data_point_list_item::DatapointType>,
}
/// Nested message and enum types in `DataPointListItem`.
pub mod data_point_list_item {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum DatapointType {
#[prost(message, tag = "3")]
NumericDatapoints(super::NumericDatapoints),
#[prost(message, tag = "4")]
StringDatapoints(super::StringDatapoints),
#[prost(message, tag = "5")]
AggregateDatapoints(super::AggregateDatapoints),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPointListResponse {
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<DataPointListItem>,
}
Loading