Re-structure sat-rs
All checks were successful
Rust/sat-rs/pipeline/pr-main This commit looks good

- Add new shared subcrate satrs-shared to split off some shared
  components not expected to change very often.
- Renmame `satrs-core` to `satrs`. It is expected that sat-rs will remain
  the primary crate, so the core information is superfluous, and core also
  implies stability, which will not be the case for some time.
This commit is contained in:
2024-02-12 15:51:37 +01:00
parent f58a4eaee5
commit de4e6183b3
93 changed files with 466 additions and 189 deletions

View File

@ -7,7 +7,7 @@ authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"]
description = """
Helper crate of the sat-rs framework to build a mission information base (MIB) from the
On-Board Software (OBSW) code directly."""
homepage = "https://egit.irs.uni-stuttgart.de/rust/sat-rs"
homepage = "https://absatsw.uni-stuttgart.de/projects/sat-rs"
repository = "https://egit.irs.uni-stuttgart.de/rust/sat-rs"
license = "Apache-2.0"
keywords = ["no-std", "space", "aerospace"]
@ -22,16 +22,14 @@ serde-hex = "0.1.0"
version = "1"
optional = true
[dependencies.satrs-core]
version = "0.1.0-alpha.3"
# path = "../satrs-core"
# git = "https://egit.irs.uni-stuttgart.de/rust/sat-rs.git"
# branch = "main"
# rev = "35e1f7a983f6535c5571186e361fe101d4306b89"
[dependencies.satrs-shared]
# version = "0.1.0"
path = "../satrs-shared"
features = ["serde"]
[dependencies.satrs-mib-codegen]
path = "codegen"
version = "0.1.0-alpha.2"
version = "0.1.0"
[dependencies.serde]
version = "1"

View File

@ -1,2 +1,5 @@
satrs-mib
=========
This helper crate contains the procedural macros for the sat-rs framework.
You can find more information on the [homepage](https://egit.irs.uni-stuttgart.de/rust/sat-rs).

View File

@ -1,6 +1,6 @@
[package]
name = "satrs-mib-codegen"
version = "0.1.0-alpha.2"
version = "0.1.0"
edition = "2021"
description = "satrs-mib proc macro implementation"
homepage = "https://egit.irs.uni-stuttgart.de/rust/sat-rs"
@ -19,12 +19,10 @@ path = "tests/tests.rs"
quote = "1"
proc-macro2 = "1"
[dependencies.satrs-core]
version = "0.1.0-alpha.3"
# path = "../../satrs-core"
# git = "https://egit.irs.uni-stuttgart.de/rust/sat-rs.git"
# branch = "main"
# rev = "35e1f7a983f6535c5571186e361fe101d4306b89"
[dependencies.syn]
version = "2"
features = ["full"]
[dev-dependencies]
trybuild = { version = "1", features = ["diff"] }
@ -32,6 +30,6 @@ trybuild = { version = "1", features = ["diff"] }
[dev-dependencies.satrs-mib]
path = ".."
[dependencies.syn]
version = "2"
features = ["full"]
[dev-dependencies.satrs-shared]
# version = "0.1.0"
path = "../../satrs-shared"

View File

@ -1,8 +1,8 @@
//! Basic check which just verifies that everything compiles
use satrs_core::res_code::ResultU16;
use satrs_mib::resultcode;
use satrs_shared::res_code::ResultU16;
#[resultcode]
const _TEST_RESULT: ResultU16 = ResultU16::const_new(0, 1);
const _TEST_RESULT: ResultU16 = ResultU16::new(0, 1);
fn main() {}

View File

@ -1,8 +1,8 @@
//! Basic check which just verifies that everything compiles
use satrs_core::res_code::ResultU16;
use satrs_mib::resultcode;
use satrs_shared::res_code::ResultU16;
#[resultcode(info = "This is a test result where the first parameter is foo")]
const _TEST_RESULT: ResultU16 = ResultU16::const_new(0, 1);
const _TEST_RESULT: ResultU16 = ResultU16::new(0, 1);
fn main() {}

View File

@ -1,9 +1,9 @@
use satrs_core::res_code::ResultU16;
use satrs_mib::res_code::ResultU16Info;
use satrs_mib::resultcode;
use satrs_shared::res_code::ResultU16;
#[resultcode(info = "This is a test result where the first parameter is foo")]
const TEST_RESULT: ResultU16 = ResultU16::const_new(0, 1);
const TEST_RESULT: ResultU16 = ResultU16::new(0, 1);
// Create named reference of auto-generated struct, which can be used by IDEs etc.
const TEST_RESULT_EXT_REF: &ResultU16Info = &TEST_RESULT_EXT;

View File

@ -1,7 +1,7 @@
#[cfg(feature = "std")]
pub use stdmod::*;
pub use satrs_core::res_code::ResultU16;
pub use satrs_shared::res_code::ResultU16;
use serde::{Deserialize, Serialize};
use serde_hex::{SerHex, StrictCapPfx};
@ -96,8 +96,8 @@ mod tests {
// Special solution for this crate because the code generated by a macro will use
// satrs_mib::res_code::*
use crate as satrs_mib;
use satrs_core::res_code::ResultU16;
use satrs_mib::resultcode;
use satrs_shared::res_code::ResultU16;
#[derive(Debug)]
#[allow(dead_code)]
@ -106,12 +106,12 @@ mod tests {
}
#[resultcode]
pub const INVALID_PUS_SERVICE: ResultU16 = ResultU16::const_new(GroupId::Tmtc as u8, 0);
pub const INVALID_PUS_SERVICE: ResultU16 = ResultU16::new(GroupId::Tmtc as u8, 0);
#[resultcode]
pub const INVALID_PUS_SUBSERVICE: ResultU16 = ResultU16::const_new(GroupId::Tmtc as u8, 1);
pub const INVALID_PUS_SUBSERVICE: ResultU16 = ResultU16::new(GroupId::Tmtc as u8, 1);
#[resultcode(info = "Not enough data inside the TC application data field")]
pub const NOT_ENOUGH_APP_DATA: ResultU16 = ResultU16::const_new(GroupId::Tmtc as u8, 2);
pub const NOT_ENOUGH_APP_DATA: ResultU16 = ResultU16::new(GroupId::Tmtc as u8, 2);
pub const TMTC_RESULTS: &[ResultU16Info] = &[
INVALID_PUS_SERVICE_EXT,
@ -119,12 +119,12 @@ mod tests {
NOT_ENOUGH_APP_DATA_EXT,
];
const CSV_NAME: &'static str = "dummy.csv";
const CSV_NAME: &str = "dummy.csv";
#[test]
fn test_printout() {
let mut wtrb = csv::WriterBuilder::new();
wtrb.delimiter(';' as u8);
wtrb.delimiter(b';');
print_resultcodes_as_csv(wtrb, TMTC_RESULTS).expect("Priting result codes failed");
}
@ -133,7 +133,7 @@ mod tests {
let csvpath = Path::new(CSV_NAME);
let mut wtrb = csv::WriterBuilder::new();
let file = File::create(csvpath).expect("Creating CSV file failed");
wtrb.delimiter(';' as u8);
wtrb.delimiter(b';');
write_resultcodes_to_csv(wtrb, TMTC_RESULTS, file).expect("CSV export failed");
assert!(csvpath.exists());
let file = File::open(csvpath).expect("Opening CSV file failed");