commit 868678fa009480b1f1e0d933894f03d88c7e98a8 Author: Myrddin Dundragon Date: Fri Jun 27 08:48:57 2025 -0400 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a0ec7f --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Added by cargo + +/target diff --git a/.rustfmt.toml b/.rustfmt.toml new file mode 100644 index 0000000..b85c2b1 --- /dev/null +++ b/.rustfmt.toml @@ -0,0 +1,79 @@ +max_width = 80 +hard_tabs = false +tab_spaces = 3 +newline_style = "Unix" +indent_style = "Visual" +use_small_heuristics = "Default" +fn_call_width = 60 +attr_fn_like_width = 70 +struct_lit_width = 18 +struct_variant_width = 35 +array_width = 60 +chain_width = 60 +single_line_if_else_max_width = 50 +single_line_let_else_max_width = 50 +wrap_comments = true +format_code_in_doc_comments = true +doc_comment_code_block_width = 80 +comment_width = 80 +normalize_comments = true +normalize_doc_attributes = true +format_strings = true +format_macro_matchers = true +format_macro_bodies = true +skip_macro_invocations = [] +hex_literal_case = "Preserve" +empty_item_single_line = true +struct_lit_single_line = true +fn_single_line = false +where_single_line = true +imports_indent = "Visual" +imports_layout = "Horizontal" +imports_granularity = "Module" +group_imports = "StdExternalCrate" +reorder_imports = true +reorder_modules = true +reorder_impl_items = true +type_punctuation_density = "Wide" +space_before_colon = false +space_after_colon = true +spaces_around_ranges = false +binop_separator = "Back" +remove_nested_parens = true +combine_control_expr = false +short_array_element_width_threshold = 10 +overflow_delimited_expr = false +struct_field_align_threshold = 0 +enum_discrim_align_threshold = 0 +match_arm_blocks = true +match_arm_leading_pipes = "Never" +force_multiline_blocks = true +fn_params_layout = "Compressed" +brace_style = "AlwaysNextLine" +control_brace_style = "AlwaysNextLine" +trailing_semicolon = true +trailing_comma = "Never" +match_block_trailing_comma = false +blank_lines_upper_bound = 3 +blank_lines_lower_bound = 0 +edition = "2021" +style_edition = "2021" +inline_attribute_width = 0 +format_generated_files = true +generated_marker_line_search_limit = 5 +merge_derives = true +use_try_shorthand = false +use_field_init_shorthand = false +force_explicit_abi = true +condense_wildcard_suffixes = false +color = "Always" +required_version = "1.8.0" +unstable_features = true +disable_all_formatting = false +skip_children = false +show_parse_errors = true +error_on_line_overflow = false +error_on_unformatted = false +ignore = [] +emit_mode = "Files" +make_backup = false diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..6fe75bc --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "example" +version = "0.0.0" +edition = "2021" +description = "Just a small sample of Rust code." +repository = "/myrddin/example" +authors = ["CyberMages LLC ", "Jason Travis Smith "] +readme = "README.md" +license = "Apache-2.0" + + + +[dependencies] diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..cad616a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,174 @@ +# Apache License +Version 2.0, January 2004 + + +## TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +### 1. Definitions. + +**"License"** shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +**"Licensor"** shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +**"Legal Entity"** shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +**"You" (or "Your")** shall mean an individual or Legal Entity exercising +permissions granted by this License. + +**"Source" form** shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +**"Object" form** shall mean any form resulting from mechanical +transformation or translation of a Source form, including but not +limited to compiled object code, generated documentation, and +conversions to other media types. + +**"Work"** shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +**"Derivative Works"** shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +**"Contribution"** shall mean any work of authorship, including the +original version of the Work and any modifications or additions to that +Work or Derivative Works thereof, that is intentionally submitted to +the Licensor for inclusion in the Work by the copyright owner or by an +individual or Legal Entity authorized to submit on behalf of the +copyright owner. + +**"Contributor"** shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +### 2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor +hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, +royalty-free, irrevocable copyright license to reproduce, prepare +Derivative Works of, publicly display, publicly perform, sublicense, +and distribute the Work and such Derivative Works in Source or Object +form. + +### 3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor +hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, +royalty-free, irrevocable (except as stated in this section) patent +license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those +patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that +the Work or a Contribution incorporated within the Work constitutes +direct or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate as of +the date such litigation is filed. + +### 4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works +thereof in any medium, with or without modifications, and in Source or +Object form, provided that You meet the following conditions: + +1. You must give any other recipients of the Work or Derivative Works a + copy of this License; and + +2. You must cause any modified files to carry prominent notices stating + that You changed the files; and + +3. You must retain, in the Source form of any Derivative Works that You + distribute, all copyright, patent, trademark, and attribution notices + from the Source form of the Work, excluding those notices that do not + pertain to any part of the Derivative Works; and + +4. If the Work includes a "NOTICE" text file as part of its distribution, + then any Derivative Works that You distribute must include a readable + copy of the attribution notices contained within such NOTICE file, + excluding those notices that do not pertain to any part of the + Derivative Works, in at least one of the following places: within a + NOTICE text file distributed as part of the Derivative Works; within + the Source form or documentation, if provided along with the Derivative + Works; or, within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents of the + NOTICE file are for informational purposes only and do not modify the + License. You may add Your own attribution notices within Derivative + Works that You distribute, alongside or as an addendum to the NOTICE + text from the Work, provided that such additional attribution notices + cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated +in this License. + +### 5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally +submitted for inclusion in the Work by You to the Licensor shall be +under the terms and conditions of this License, without any additional +terms or conditions. Notwithstanding the above, nothing herein shall +supersede or modify the terms of any separate license agreement you +may have executed with Licensor regarding such Contributions. + +### 6. Trademarks. + +This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as +required for describing the origin of the Work and reproducing the +content of the NOTICE file. + +### 7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor +provides the Work (and each Contributor provides its Contributions) on +an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +express or implied, including, without limitation, any warranties or +conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR +A PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +### 8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including +negligence), contract, or otherwise, unless required by applicable law +(such as deliberate and grossly negligent acts) or agreed to in writing, +shall any Contributor be liable to You for damages, including any direct, +indirect, special, incidental, or consequential damages of any character +arising as a result of this License or out of the use or inability to use +the Work (including but not limited to damages for loss of goodwill, work +stoppage, computer failure or malfunction, or any and all other commercial +damages or losses), even if such Contributor has been advised of the +possibility of such damages. + +### 9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose +to offer, and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this License. +However, in accepting such obligations, You may act only on Your own behalf +and on Your sole responsibility, not on behalf of any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor +harmless for any liability incurred by, or claims asserted against, such +Contributor by reason of your accepting any such warranty or additional +liability. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e195b98 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# example + +Just a small sample of Rust code. + + + +--- + +## Copyright & License + +Copyright 2025 CyberMages LLC + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this library except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS diff --git a/src/info.rs b/src/info.rs new file mode 100644 index 0000000..e857280 --- /dev/null +++ b/src/info.rs @@ -0,0 +1,33 @@ +//! This is where the cargo build information can be retrieved from. + + + +/// The environment variable defined by Cargo for the name. +const NAME: Option<&str> = option_env!("CARGO_PKG_NAME"); + +/// The environment variable defined by Cargo for the version. +const VERSION: Option<&str> = option_env!("CARGO_PKG_VERSION"); + +/// The string to display if a value is not defined during compile time. +const NOT_DEFINED: &'static str = "UNDEFINED"; + + + +/// Returns the name of the program as defined by the CARGO_PKG_NAME. This is +/// set at compile time and comes from the Cargo.toml file. +/// +/// If a value is not found, then it will return the not defined value. +pub fn get_name() -> &'static str +{ + NAME.unwrap_or(NOT_DEFINED) +} + + +/// Returns the name of the program as defined by the CARGO_PKG_VERSION. This is +/// set at compile time and comes from the Cargo.toml file. +/// +/// If a value is not found, then it will return the not defined value. +pub fn get_version() -> &'static str +{ + VERSION.unwrap_or(NOT_DEFINED) +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..2c4044f --- /dev/null +++ b/src/main.rs @@ -0,0 +1,18 @@ +//! Just a small sample of Rust code. + +mod info; + + + +/// Print the version. +fn print_version() +{ + println!("{} v{}", info::get_name(), info::get_version()); +} + + + +fn main() +{ + print_version(); +}