generated from PlexSheep/baserepo
Compare commits
No commits in common. "4eeccb15c6436acc4ba570844b3f807e89d5b163" and "f4e915a478aaa9656cde332ed81087b9ea5ae327" have entirely different histories.
4eeccb15c6
...
f4e915a478
19 changed files with 372 additions and 77 deletions
|
@ -4,27 +4,28 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
jobs:
|
#jobs:
|
||||||
format:
|
# format:
|
||||||
name: cargo CI
|
# name: cargo CI
|
||||||
permissions:
|
# permissions:
|
||||||
# Give the default GITHUB_TOKEN write permission to commit and push the
|
# # Give the default GITHUB_TOKEN write permission to commit and push the
|
||||||
# added or changed files to the repository.
|
# # added or changed files to the repository.
|
||||||
contents: write
|
# contents: write
|
||||||
steps:
|
# steps:
|
||||||
- name: get repo
|
# - name: get repo
|
||||||
uses: actions/checkout@v4
|
# uses: actions/checkout@v4
|
||||||
- name: install rust
|
# - name: install rust
|
||||||
uses: dtolnay/rust-toolchain@stable
|
# uses: dtolnay/rust-toolchain@stable
|
||||||
- name: config custom registry
|
# - name: config custom registry
|
||||||
run: |
|
# run: |
|
||||||
mkdir -p ~/.cargo/
|
# mkdir -p ~/.cargo/
|
||||||
echo "" > ~/.cargo/config.toml
|
# echo -e '[registry]
|
||||||
echo "[registry]" >> ~/.cargo/config.toml
|
# cscherr= "cscherr"
|
||||||
echo 'cscherr = "cscherr"' >> ~/.cargo/config.toml
|
#
|
||||||
echo '[registries.cscherr]' >> ~/.cargo/config.toml
|
# [registries.cscherr]
|
||||||
echo 'index = "https://git.cscherr.de/PlexSheep/_cargo-index.git"' >> ~/.cargo/config.toml
|
# index = "sparse+https://git.cscherr.de/api/packages/PlexSheep/cargo/"
|
||||||
cat ~/.cargo/config.toml
|
# ' > ~/.cargo/config.toml
|
||||||
- name: publish crates on git.cscherr.de
|
# cat ~/.cargo/config.toml
|
||||||
run: |
|
# - name: publish crates on git.cscherr.de
|
||||||
cargo workspaces publish --registry cscherr
|
# run: |
|
||||||
|
# cargo workspaces publish --registry cscherr
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name: cargo devel CI
|
name: Cargo Check, Format, Fix and Test
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
|
@ -17,16 +17,16 @@ jobs:
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: install rust
|
- name: install rust
|
||||||
uses: dtolnay/rust-toolchain@stable
|
uses: dtolnay/rust-toolchain@stable
|
||||||
- name: install additional rust things
|
|
||||||
run: rustup component add rustfmt
|
run: rustup component add rustfmt
|
||||||
- name: config custom registry
|
- name: config custom registry
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/.cargo/
|
mkdir -p ~/.cargo/
|
||||||
echo "" > ~/.cargo/config.toml
|
echo -e '[registry]
|
||||||
echo "[registry]" >> ~/.cargo/config.toml
|
cscherr= "cscherr"
|
||||||
echo 'cscherr = "cscherr"' >> ~/.cargo/config.toml
|
|
||||||
echo '[registries.cscherr]' >> ~/.cargo/config.toml
|
[registries.cscherr]
|
||||||
echo 'index = "https://git.cscherr.de/PlexSheep/_cargo-index.git"' >> ~/.cargo/config.toml
|
index = "sparse+https://git.cscherr.de/api/packages/PlexSheep/cargo/"
|
||||||
|
' > ~/.cargo/config.toml
|
||||||
cat ~/.cargo/config.toml
|
cat ~/.cargo/config.toml
|
||||||
- name: cargo check
|
- name: cargo check
|
||||||
run: cargo check --all-features --all-targets
|
run: cargo check --all-features --all-targets
|
||||||
|
|
43
Cargo.toml
43
Cargo.toml
|
@ -3,11 +3,14 @@ resolver = "2"
|
||||||
members = [
|
members = [
|
||||||
".",
|
".",
|
||||||
"members/libpt-core",
|
"members/libpt-core",
|
||||||
|
"members/libpt-bintols",
|
||||||
"members/libpt-math",
|
"members/libpt-math",
|
||||||
|
"members/libpt-bin",
|
||||||
"members/libpt-log",
|
"members/libpt-log",
|
||||||
"members/libpt-net",
|
"members/libpt-net",
|
||||||
|
"members/libpt-hedu",
|
||||||
]
|
]
|
||||||
default-members = [".", "members/libpt-core"]
|
default-members = [".", "members/libpt-bin", "members/libpt-core"]
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
publish = true
|
publish = true
|
||||||
version = "0.2.0-alpha.3"
|
version = "0.2.0-alpha.3"
|
||||||
|
@ -28,11 +31,8 @@ categories = [
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
anyhow = "1.0.79"
|
anyhow = "1.0.79"
|
||||||
thiserror = "1.0.56"
|
thiserror = "1.0.56"
|
||||||
libpt-core = { version = "0.2.0-alpha.2", path = "members/libpt-core", registry = "cscherr" }
|
libpt-log = { version = "0.2.0-alpha.2", path = "../libpt-log" }
|
||||||
libpt-bintols = { version = "0.2.0-alpha.2", path = "members/libpt-bintols", registry = "cscherr" }
|
libpt-bintols = { version = "0.2.0-alpha.2", ath = "../libpt-bintols" }
|
||||||
libpt-log = { version = "0.2.0-alpha.2", path = "members/libpt-log", registry = "cscherr" }
|
|
||||||
libpt-math = { version = "0.2.0-alpha.2", path = "members/libpt-math", registry = "cscherr" }
|
|
||||||
libpt-net = { version = "0.2.0-alpha.2", path = "members/libpt-net", registry = "cscherr" }
|
|
||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "libpt"
|
name = "libpt"
|
||||||
|
@ -50,12 +50,15 @@ categories.workspace = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["log", "core"]
|
default = ["log", "core"]
|
||||||
|
all = ["default", "math", "log", "bintols", "net", "ccc", "hedu", "core"]
|
||||||
core = []
|
core = []
|
||||||
|
fw = []
|
||||||
math = []
|
math = []
|
||||||
log = []
|
log = []
|
||||||
bintols = []
|
bintols = []
|
||||||
net = []
|
net = []
|
||||||
bin = ["dep:clap", "dep:clap-num", "dep:clap-verbosity-flag"]
|
ccc = ["math"]
|
||||||
|
hedu = ["bintols"]
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "libpt"
|
name = "libpt"
|
||||||
|
@ -65,23 +68,13 @@ crate-type = [
|
||||||
"rlib",
|
"rlib",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[bin]]
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
name = "ccc"
|
|
||||||
path = "src/ccc/mod.rs"
|
|
||||||
required-features = ["bin", "math"]
|
|
||||||
|
|
||||||
[[bin]]
|
|
||||||
name = "hedu"
|
|
||||||
path = "src/hedu/mod.rs"
|
|
||||||
required-features = ["bin", "bintols"]
|
|
||||||
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libpt-core = { workspace = true }
|
libpt-bintols = { version = "0.2.0-alpha.2", path = "members/libpt-bintols", registry="cscherr"}
|
||||||
libpt-bintols = { workspace = true }
|
libpt-core = { version = "0.2.0-alpha.2", path = "members/libpt-core", registry="cscherr" }
|
||||||
libpt-log = { workspace = true }
|
libpt-hedu = { version = "0.2.0-alpha.2", path = "members/libpt-hedu", registry="cscherr" }
|
||||||
libpt-math = { workspace = true }
|
libpt-log = { version = "0.2.0-alpha.2", path = "members/libpt-log", registry="cscherr" }
|
||||||
libpt-net = { workspace = true }
|
libpt-math = { version = "0.2.0-alpha.2", path = "members/libpt-math", registry="cscherr" }
|
||||||
clap = { version = "4.4.4", features = ["derive"], optional = true }
|
libpt-ccc = { version = "0.2.0-alpha.2", path = "members/libpt-ccc", registry="cscherr" }
|
||||||
clap-num = { version = "1.0.2", optional = true }
|
libpt-net = { version = "0.2.0-alpha.2", path = "members/libpt-net", registry="cscherr" }
|
||||||
clap-verbosity-flag = { version = "2.0.1", optional = true }
|
|
||||||
|
|
41
members/libpt-bin/Cargo.toml
Normal file
41
members/libpt-bin/Cargo.toml
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
[package]
|
||||||
|
autobins = true
|
||||||
|
name = "libpt-bin"
|
||||||
|
publish.workspace = true
|
||||||
|
version.workspace = true
|
||||||
|
edition.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
description.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
homepage.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
keywords.workspace = true
|
||||||
|
categories.workspace = true
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "ccc"
|
||||||
|
path = "src/ccc/mod.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "hedu"
|
||||||
|
path = "src/hedu/mod.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "libpt"
|
||||||
|
path = "src/main/mod.rs"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
clap = { version = "4.4.4", features = ["derive"] }
|
||||||
|
clap-num = "1.0.2"
|
||||||
|
clap-verbosity-flag = "2.0.1"
|
||||||
|
libpt = { version = "0.2.0-alpha.2", path = "../..", features = [
|
||||||
|
"default",
|
||||||
|
"ccc",
|
||||||
|
"math",
|
||||||
|
"hedu",
|
||||||
|
"net",
|
||||||
|
"log",
|
||||||
|
], registry = "cscherr" }
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
//// IMPORTS ///////////////////////////////////////////////////////////////////////////////////////
|
//// IMPORTS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
use libpt::{bintols::hedu::*, log::*};
|
use libpt::{hedu::*, log::*};
|
||||||
|
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use clap_verbosity_flag::{InfoLevel, Verbosity};
|
use clap_verbosity_flag::{InfoLevel, Verbosity};
|
||||||
|
@ -88,11 +88,6 @@ pub struct Cli {
|
||||||
/// If left empty or set as "-", the program will read from stdin.
|
/// If left empty or set as "-", the program will read from stdin.
|
||||||
pub data_source: Option<String>,
|
pub data_source: Option<String>,
|
||||||
}
|
}
|
||||||
impl Cli {
|
|
||||||
fn parse() -> Cli {
|
|
||||||
todo!()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//// IMPLEMENTATION ////////////////////////////////////////////////////////////////////////////////
|
//// IMPLEMENTATION ////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
124
members/libpt-bin/src/main/args.rs
Normal file
124
members/libpt-bin/src/main/args.rs
Normal file
|
@ -0,0 +1,124 @@
|
||||||
|
//! # args module
|
||||||
|
//!
|
||||||
|
//! The args module of libpt is used to parse commandline arguments. For this, it makes use of
|
||||||
|
//! [`clap`].
|
||||||
|
|
||||||
|
//// ATTRIBUTES ////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// we want docs
|
||||||
|
#![warn(missing_docs)]
|
||||||
|
#![warn(rustdoc::missing_crate_level_docs)]
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// we want Debug everywhere.
|
||||||
|
#![warn(missing_debug_implementations)]
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// enable clippy's extra lints, the pedantic version
|
||||||
|
#![warn(clippy::pedantic)]
|
||||||
|
|
||||||
|
//// IMPORTS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
use clap::{Parser, Subcommand};
|
||||||
|
|
||||||
|
use clap_num::number_range;
|
||||||
|
|
||||||
|
use clap_verbosity_flag::{InfoLevel, Verbosity};
|
||||||
|
|
||||||
|
//// CONSTANTS /////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// short about section displayed in help
|
||||||
|
const ABOUT_ROOT: &'static str = r##"
|
||||||
|
Personal multi tool
|
||||||
|
|
||||||
|
A collection of tools made for personal use
|
||||||
|
"##;
|
||||||
|
/// longer about section displayed in help, is combined with [the short help](ABOUT_ROOT)
|
||||||
|
static LONG_ABOUT_ROOT: &'static str = r##"
|
||||||
|
|
||||||
|
libpt is a personal general purpose library, offering this executable, a python module and a
|
||||||
|
dynamic library.
|
||||||
|
"##;
|
||||||
|
|
||||||
|
//// STATICS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// ## Main struct for parsing CLI arguments
|
||||||
|
///
|
||||||
|
/// This struct describes the complete commandline options/arguments that [pt](crate) can take. It
|
||||||
|
/// makes use of composition to build a complex system of commands, subcommands, flags and options.
|
||||||
|
#[derive(Debug, Clone, Parser)]
|
||||||
|
#[command(
|
||||||
|
author,
|
||||||
|
version,
|
||||||
|
about = ABOUT_ROOT,
|
||||||
|
long_about = format!("{}{}", ABOUT_ROOT ,LONG_ABOUT_ROOT),
|
||||||
|
help_template =
|
||||||
|
r#"libpt: {version}{about-section}Author:
|
||||||
|
{author-with-newline}
|
||||||
|
{usage-heading} {usage}{all-args}{tab}"#
|
||||||
|
)]
|
||||||
|
pub struct Cli {
|
||||||
|
// clap_verbosity_flag seems to make this a global option implicitly
|
||||||
|
/// set a verbosity, multiple allowed (f.e. -vvv)
|
||||||
|
#[command(flatten)]
|
||||||
|
pub verbose: Verbosity<InfoLevel>,
|
||||||
|
|
||||||
|
/// show logger meta
|
||||||
|
#[arg(short, long, global = true)]
|
||||||
|
pub log_meta: bool,
|
||||||
|
|
||||||
|
/// choose a subcommand
|
||||||
|
#[command(subcommand)]
|
||||||
|
pub command: Commands,
|
||||||
|
}
|
||||||
|
|
||||||
|
//// ENUMS /////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// ## defines the top level commands
|
||||||
|
#[derive(Debug, Clone, Subcommand)]
|
||||||
|
#[non_exhaustive]
|
||||||
|
pub enum Commands {
|
||||||
|
/// networking commands
|
||||||
|
Net {
|
||||||
|
/// Networking subcommands
|
||||||
|
#[command(subcommand)]
|
||||||
|
command: NetCommands,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// ## defines the networking commands
|
||||||
|
#[derive(Debug, Clone, Subcommand)]
|
||||||
|
#[non_exhaustive]
|
||||||
|
pub enum NetCommands {
|
||||||
|
/// monitor your network
|
||||||
|
Monitor {
|
||||||
|
/// repeat every N seconds, 0 means no repeat
|
||||||
|
#[clap(short, long, default_value_t = 0, name = "N")]
|
||||||
|
repeat: u64,
|
||||||
|
|
||||||
|
/// At what percentage should the try be considered successful
|
||||||
|
#[clap(short, long, default_value_t = 100, value_parser=max100)]
|
||||||
|
success_ratio: u8,
|
||||||
|
|
||||||
|
/// extra URLs to check with
|
||||||
|
extra_urls: Vec<String>,
|
||||||
|
|
||||||
|
/// Don't check for default URLs
|
||||||
|
#[clap(short, long)]
|
||||||
|
no_default: bool,
|
||||||
|
|
||||||
|
/// set a timeout (in ms)
|
||||||
|
#[clap(short, long, default_value_t = 100)]
|
||||||
|
timeout: u64,
|
||||||
|
},
|
||||||
|
/// discover hosts in your network
|
||||||
|
Discover {},
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// STRUCTS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// IMPLEMENTATION ////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// PUBLIC FUNCTIONS //////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// PRIVATE FUNCTIONS /////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// custom value parser, only allow 0 to 100
|
||||||
|
fn max100(s: &str) -> Result<u8, String> {
|
||||||
|
number_range(s, 0, 100)
|
||||||
|
}
|
102
members/libpt-bin/src/main/mod.rs
Normal file
102
members/libpt-bin/src/main/mod.rs
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
//! # Main executable of libpt
|
||||||
|
//!
|
||||||
|
//! This module contains all code specific to the executable version of [`pt`]: [`pt`](crate).
|
||||||
|
//!
|
||||||
|
//!
|
||||||
|
|
||||||
|
//// ATTRIBUTES ////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// we want docs
|
||||||
|
#![warn(missing_docs)]
|
||||||
|
#![warn(rustdoc::missing_crate_level_docs)]
|
||||||
|
// we want Debug everywhere.
|
||||||
|
#![warn(missing_debug_implementations)]
|
||||||
|
// enable clippy's extra lints, the pedantic version
|
||||||
|
#![warn(clippy::pedantic)]
|
||||||
|
|
||||||
|
//// IMPORTS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
use libpt::{log::*, net::monitoring::uptime};
|
||||||
|
|
||||||
|
use clap::Parser;
|
||||||
|
|
||||||
|
pub mod args;
|
||||||
|
use args::*;
|
||||||
|
|
||||||
|
//// CONSTANTS /////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
#[allow(dead_code)]
|
||||||
|
//// STATICS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// MACROS ////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// ENUMS /////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// STRUCTS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// IMPLEMENTATION ////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//// PUBLIC FUNCTIONS //////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// ## Main function of the [`pt`](crate) binary
|
||||||
|
pub fn main() {
|
||||||
|
let cli = Cli::parse();
|
||||||
|
let ll: Level = match cli.verbose.log_level().unwrap().as_str() {
|
||||||
|
"TRACE" => Level::TRACE,
|
||||||
|
"DEBUG" => Level::DEBUG,
|
||||||
|
"INFO" => Level::INFO,
|
||||||
|
"WARN" => Level::WARN,
|
||||||
|
"ERROR" => Level::ERROR,
|
||||||
|
_ => {
|
||||||
|
eprintln!("'{}' is not a valid loglevel", cli.verbose.to_string());
|
||||||
|
std::process::exit(1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if cli.log_meta {
|
||||||
|
Logger::init(None, Some(ll)).expect("could not initialize Logger");
|
||||||
|
} else {
|
||||||
|
// less verbose version
|
||||||
|
Logger::init_mini(Some(ll)).expect("could not initialize Logger");
|
||||||
|
}
|
||||||
|
|
||||||
|
trace!("started the main function");
|
||||||
|
trace!("{:?}", &cli);
|
||||||
|
|
||||||
|
match cli.clone().command {
|
||||||
|
Commands::Net { command } => net(&cli, command),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// ## Process [`Net`](args::NetCommands) subcommands
|
||||||
|
pub fn net(cli: &Cli, command: NetCommands) {
|
||||||
|
match command {
|
||||||
|
NetCommands::Monitor {
|
||||||
|
repeat,
|
||||||
|
success_ratio,
|
||||||
|
extra_urls,
|
||||||
|
no_default,
|
||||||
|
timeout,
|
||||||
|
} => {
|
||||||
|
let urls: Vec<String>;
|
||||||
|
if no_default {
|
||||||
|
urls = extra_urls;
|
||||||
|
} else {
|
||||||
|
let mut combined: Vec<String> = Vec::new();
|
||||||
|
for i in uptime::DEFAULT_CHECK_URLS {
|
||||||
|
combined.push(i.to_string());
|
||||||
|
}
|
||||||
|
combined.extend(extra_urls);
|
||||||
|
urls = combined;
|
||||||
|
}
|
||||||
|
let _verbose = cli.verbose.log_level().is_some();
|
||||||
|
if repeat > 0 {
|
||||||
|
uptime::continuous_uptime_monitor(success_ratio, urls, repeat * 1000, timeout);
|
||||||
|
} else {
|
||||||
|
let status = uptime::UptimeStatus::new(success_ratio, urls, timeout);
|
||||||
|
info!("status:\n{}", status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NetCommands::Discover {} => {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//// PRIVATE FUNCTIONS /////////////////////////////////////////////////////////////////////////////
|
|
@ -16,7 +16,5 @@ categories.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
num-traits = "0.2.16"
|
num-traits = "0.2.16"
|
||||||
libpt-core = { workspace = true }
|
libpt-core = { version = "0.2.0-alpha.2", path = "../libpt-core", registry="cscherr" }
|
||||||
libpt-log = { workspace = true }
|
libpt-log = { version = "0.2.0-alpha.2", path = "../libpt-log", registry="cscherr" }
|
||||||
anyhow = { workspace = true }
|
|
||||||
thiserror = { workspace = true }
|
|
||||||
|
|
|
@ -25,4 +25,3 @@ pub const YOBI: u128 = 2u128.pow(80);
|
||||||
// use libpt_core;
|
// use libpt_core;
|
||||||
pub mod datalayout;
|
pub mod datalayout;
|
||||||
pub mod display;
|
pub mod display;
|
||||||
pub mod hedu;
|
|
||||||
|
|
22
members/libpt-ccc/Cargo.toml
Normal file
22
members/libpt-ccc/Cargo.toml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[package]
|
||||||
|
name = "libpt-ccc"
|
||||||
|
publish.workspace = true
|
||||||
|
version.workspace = true
|
||||||
|
edition.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
description.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
homepage.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
keywords.workspace = true
|
||||||
|
categories.workspace = true
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
num = "0.4.1"
|
||||||
|
num-traits = "0.2.16"
|
||||||
|
libpt-core = { version = "0.2.0-alpha.2", path = "../libpt-core", registry="cscherr" }
|
||||||
|
libpt-log = { version = "0.2.0-alpha.2", path = "../libpt-log", registry="cscherr" }
|
||||||
|
libpt-math = { version = "0.2.0-alpha.2", path = "../libpt-math", registry="cscherr" }
|
|
@ -19,6 +19,8 @@
|
||||||
#![warn(clippy::pedantic)]
|
#![warn(clippy::pedantic)]
|
||||||
|
|
||||||
//// IMPORTS ///////////////////////////////////////////////////////////////////////////////////////
|
//// IMPORTS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
use libpt_log;
|
||||||
|
use libpt_math;
|
||||||
|
|
||||||
//// TYPES /////////////////////////////////////////////////////////////////////////////////////////
|
//// TYPES /////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -15,4 +15,4 @@ categories.workspace = true
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.79"
|
anyhow = "1.0.79"
|
||||||
cucumber = "0.20.2"
|
cucumber = "0.20.2"
|
||||||
libpt-log = { workspace = true }
|
libpt-log = { version = "0.2.0-alpha.2", path = "../libpt-log", registry="cscherr" }
|
||||||
|
|
21
members/libpt-hedu/Cargo.toml
Normal file
21
members/libpt-hedu/Cargo.toml
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[package]
|
||||||
|
name = "libpt-hedu"
|
||||||
|
publish.workspace = true
|
||||||
|
version.workspace = true
|
||||||
|
edition.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
description.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
homepage.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
keywords.workspace = true
|
||||||
|
categories.workspace = true
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
anyhow = { workspace = true }
|
||||||
|
thiserror = { workspace = true }
|
||||||
|
libpt-log = { version = "0.2.0-alpha.2", path = "../libpt-log", registry="cscherr" }
|
||||||
|
libpt-bintols = { version = "0.2.0-alpha.2", path = "../libpt-bintols", registry="cscherr" }
|
|
@ -5,8 +5,8 @@
|
||||||
//!
|
//!
|
||||||
//! This crate is currently empty.
|
//! This crate is currently empty.
|
||||||
|
|
||||||
use crate::display::{bytes_to_bin, humanbytes};
|
|
||||||
use anyhow::{bail, Result};
|
use anyhow::{bail, Result};
|
||||||
|
use libpt_bintols::display::{bytes_to_bin, humanbytes};
|
||||||
use libpt_log::{debug, error, info, trace, warn};
|
use libpt_log::{debug, error, info, trace, warn};
|
||||||
use std::io::{prelude::*, BufReader, Read, SeekFrom};
|
use std::io::{prelude::*, BufReader, Read, SeekFrom};
|
||||||
|
|
|
@ -15,7 +15,3 @@ categories.workspace = true
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
num = "0.4.1"
|
|
||||||
num-traits = "0.2.16"
|
|
||||||
libpt-core = { workspace = true }
|
|
||||||
libpt-log = { workspace = true }
|
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#![warn(clippy::pedantic)]
|
#![warn(clippy::pedantic)]
|
||||||
|
|
||||||
//// IMPORTS ///////////////////////////////////////////////////////////////////////////////////////
|
//// IMPORTS ///////////////////////////////////////////////////////////////////////////////////////
|
||||||
pub mod ccc;
|
|
||||||
|
|
||||||
//// TYPES /////////////////////////////////////////////////////////////////////////////////////////
|
//// TYPES /////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,9 @@ categories.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
humantime = "2.1.0"
|
humantime = "2.1.0"
|
||||||
libpt-core = { workspace = true }
|
libpt-core = { version = "0.2.0-alpha.2", path = "../libpt-core", registry="cscherr" }
|
||||||
libpt-log = { workspace = true }
|
libpt-log = { version = "0.2.0-alpha.2", path = "../libpt-log", registry="cscherr" }
|
||||||
libpt-math = { workspace = true }
|
libpt-math = { version = "0.2.0-alpha.2", path = "../libpt-math", registry="cscherr" }
|
||||||
reqwest = { version = "0.11.20", features = ["blocking"] }
|
reqwest = { version = "0.11.20", features = ["blocking"] }
|
||||||
serde = { version = "1.0.188", features = ["serde_derive"] }
|
serde = { version = "1.0.188", features = ["serde_derive"] }
|
||||||
serde_json = "1.0.107"
|
serde_json = "1.0.107"
|
||||||
|
|
|
@ -12,6 +12,8 @@ pub use libpt_bintols as bintols;
|
||||||
pub use libpt_ccc as ccc;
|
pub use libpt_ccc as ccc;
|
||||||
#[cfg(feature = "core")]
|
#[cfg(feature = "core")]
|
||||||
pub use libpt_core as core;
|
pub use libpt_core as core;
|
||||||
|
#[cfg(feature = "hedu")]
|
||||||
|
pub use libpt_hedu as hedu;
|
||||||
#[cfg(feature = "log")]
|
#[cfg(feature = "log")]
|
||||||
pub use libpt_log as log;
|
pub use libpt_log as log;
|
||||||
#[cfg(feature = "math")]
|
#[cfg(feature = "math")]
|
||||||
|
|
Reference in a new issue