~ruther/NosSmooth.Comms

e9cd466a9c74f6bea1295532c67a94b01b1a3edf — František Boháček 2 years ago
feat: initial commit
6 files changed, 320 insertions(+), 0 deletions(-)

A .gitignore
A Directory.Build.props
A LICENSE
A NosSmooth.Comms.sln
A stylecop.json
A stylecop.ruleset
A  => .gitignore +6 -0
@@ 1,6 @@
.idea/
bin/
obj/
/packages/
riderModule.iml
/_ReSharper.Caches/

A  => Directory.Build.props +22 -0
@@ 1,22 @@
<Project>
    <PropertyGroup>
        <StyleCopRuleset>$(MSBuildThisFileDirectory)stylecop.ruleset</StyleCopRuleset>
        <StyleCopConfiguration>$(MSBuildThisFileDirectory)stylecop.json</StyleCopConfiguration>

        <Nullable>enable</Nullable>
        <WarningsAsErrors>nullable</WarningsAsErrors>

        <GenerateDocumentationFile>true</GenerateDocumentationFile>

        <CodeAnalysisRuleSet>$(StyleCopRuleset)</CodeAnalysisRuleSet>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.261">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>

        <AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" Link="stylecop.json"/>
    </ItemGroup>
</Project>

A  => LICENSE +21 -0
@@ 1,21 @@
MIT License

Copyright (c) 2021 František Boháček

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

A  => NosSmooth.Comms.sln +8 -0
@@ 1,8 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
EndGlobal

A  => stylecop.json +61 -0
@@ 1,61 @@
{
  "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
  "settings": {
    "indentation": {
      "indentationSize": 4,
      "tabSize": 4,
      "useTabs": false
    },
    "spacingRules": {
    },
    "readabilityRules": {
    },
    "orderingRules": {
      "elementOrder": [
        "kind",
        "constant",
        "accessibility",
        "static",
        "readonly"
      ],
      "systemUsingDirectivesFirst": true,
      "usingDirectivesPlacement": "outsideNamespace",
      "blankLinesBetweenUsingGroups": "allow"
    },
    "namingRules": {
      "allowCommonHungarianPrefixes": true,
      "allowedHungarianPrefixes": [
        "gl",
        "f",
        "db"
      ]
    },
    "maintainabilityRules": {
      "topLevelTypes": [
        "class",
        "interface",
        "struct",
        "enum"
      ]
    },
    "layoutRules": {
      "allowConsecutiveUsings": false
    },
    "documentationRules": {
      "companyName": "František Boháček",
      "copyrightText": "\n {fileName}\n\n Copyright (c) {companyName}. All rights reserved.\n Licensed under the {licenseName} license. See {licenseFile} file in the project root for full license information.",
      "variables": {
        "licenseName": "MIT",
        "licenseFile": "LICENSE"
      },
      "xmlHeader": false,
      "documentInterfaces": true,
      "documentExposedElements": true,
      "documentInternalElements": true,
      "documentPrivateElements": false,
      "documentPrivateFields": false,
      "documentationCulture": "en-US",
      "fileNamingConvention": "stylecop"
    }
  }
}

A  => stylecop.ruleset +202 -0
@@ 1,202 @@
<RuleSet Name="Christofel rules" ToolsVersion="14.0">
    <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">

        <!-- Special rules -->
        <Rule Id="SA0001" Action="Error"/> <!-- XML comment analysis disabled -->
        <Rule Id="SA0002" Action="Error"/> <!-- Invalid settings file -->

        <!-- Spacing rules -->
        <Rule Id="SA1000" Action="Error"/> <!-- Keywords must be spaced correctly -->
        <Rule Id="SA1001" Action="Error"/> <!-- Commas must be spaced correctly -->
        <Rule Id="SA1002" Action="Error"/> <!-- Semicolons must be spaced correctly -->
        <Rule Id="SA1003" Action="Error"/> <!-- Symbols must be spaced correctly -->
        <Rule Id="SA1004" Action="Error"/> <!-- Documentation lines must begin with single space -->
        <Rule Id="SA1005" Action="Error"/> <!-- Single line comments must begin with single space -->
        <Rule Id="SA1006" Action="Error"/> <!-- Preprocessor keywords must not be preceded by space -->
        <Rule Id="SA1007" Action="Error"/> <!-- Operator keyword must be followed by space -->
        <Rule Id="SA1008" Action="Error"/> <!-- Opening parenthesis must be spaced correctly -->
        <Rule Id="SA1009" Action="None"/> <!-- Closing parenthesis must be spaced correctly -->
        <Rule Id="SA1010" Action="Error"/> <!-- Opening square brackets must be spaced correctly -->
        <Rule Id="SA1011" Action="Error"/> <!-- Closing square brackets must be spaced correctly -->
        <Rule Id="SA1012" Action="Error"/> <!-- Opening braces must be spaced correctly -->
        <Rule Id="SA1013" Action="Error"/> <!-- Closing braces must be spaced correctly -->
        <Rule Id="SA1014" Action="Error"/> <!-- Opening generic brackets must be spaced correctly -->
        <Rule Id="SA1015" Action="Error"/> <!-- Closing generic brackets must be spaced correctly -->
        <Rule Id="SA1016" Action="Error"/> <!-- Opening attribute brackets must be spaced correctly -->
        <Rule Id="SA1017" Action="Error"/> <!-- Closing attribute brackets must be spaced correctly -->
        <Rule Id="SA1018" Action="Error"/> <!-- Nullable type symbols must be spaced correctly -->
        <Rule Id="SA1019" Action="Error"/> <!-- Member access symbols must be spaced correctly -->
        <Rule Id="SA1020" Action="Error"/> <!-- Increment decrement symbols must be spaced correctly -->
        <Rule Id="SA1021" Action="Error"/> <!-- Negative signs must be spaced correctly -->
        <Rule Id="SA1022" Action="Error"/> <!-- Positive signs must be spaced correctly -->
        <Rule Id="SA1023" Action="Error"/> <!-- Dereference and access of symbols must be spaced correctly -->
        <Rule Id="SA1024" Action="Error"/> <!-- Colons must be spaced correctly -->
        <Rule Id="SA1025" Action="Error"/> <!-- Code must not contain multiple whitespace in a row -->
        <Rule Id="SA1026"
              Action="Error"/> <!-- Code must not contain space after new keyword in implicitly typed array allocation -->
        <Rule Id="SA1027" Action="Error"/> <!-- Use tabs correctly -->
        <Rule Id="SA1028" Action="Error"/> <!-- Code must not contain trailing whitespace -->

        <!-- Readability rules -->
        <Rule Id="SA1100" Action="Error"/> <!-- Do not prefix calls with base unless local implementation exists -->
        <Rule Id="SA1101" Action="None"/> <!-- Prefix local calls with this -->
        <Rule Id="SX1101" Action="None"/> <!-- Do not prefix local calls with this. -->
        <Rule Id="SA1102" Action="Error"/> <!-- Query clause must follow previous clause -->
        <Rule Id="SA1103" Action="Error"/> <!-- Query clauses must be on separate lines or all on one line -->
        <Rule Id="SA1104"
              Action="Error"/> <!-- Query clause must begin on new line when previous clause spans multiple lines -->
        <Rule Id="SA1105" Action="Error"/> <!-- Query clauses spanning multiple lines must begin on own line -->
        <Rule Id="SA1106" Action="Error"/> <!-- Code must not contain empty statements -->
        <Rule Id="SA1107" Action="Error"/> <!-- Code must not contain multiple statements on one line -->
        <Rule Id="SA1108" Action="Error"/> <!-- Block statements must not contain embedded comments -->
        <Rule Id="SA1110" Action="None"/> <!-- Opening parenthesis or bracket must be on declaration line -->
        <Rule Id="SA1111" Action="None"/> <!-- Closing parenthesis must be on line of last parameter -->
        <Rule Id="SA1112" Action="Error"/> <!-- Closing parenthesis must be on line of opening parenthesis -->
        <Rule Id="SA1113" Action="Error"/> <!-- Comma must be on the same line as previous parameter -->
        <Rule Id="SA1114" Action="Error"/> <!-- Parameter list must follow declaration -->
        <Rule Id="SA1115" Action="Error"/> <!-- Parameter must follow comma -->
        <Rule Id="SA1116" Action="Error"/> <!-- Split parameters must start on line after declaration -->
        <Rule Id="SA1117" Action="Error"/> <!-- Parameters must be on same line or separate lines -->
        <Rule Id="SA1118" Action="Error"/> <!-- Parameter must not span multiple lines -->
        <Rule Id="SA1119" Action="Error"/> <!-- Statement must not use unnecessary parenthesis -->
        <Rule Id="SA1120" Action="None"/> <!-- Comments must contain text -->
        <Rule Id="SA1121" Action="Error"/> <!-- Use built-in type alias -->
        <Rule Id="SA1122" Action="Error"/> <!-- Use string.Empty for empty strings -->
        <Rule Id="SA1123" Action="Error"/> <!-- Do not place regions within elements -->
        <Rule Id="SA1124" Action="Error"/> <!-- Do not use regions -->
        <Rule Id="SA1125" Action="Error"/> <!-- Use shorthand for nullable types -->
        <Rule Id="SA1127" Action="None"/> <!-- Generic type constraints must be on their own line -->
        <Rule Id="SA1128" Action="Error"/> <!-- Put constructor initializers on their own line -->
        <Rule Id="SA1129" Action="Error"/> <!-- Do not use default value type constructor -->
        <Rule Id="SA1130" Action="Error"/> <!-- Use lambda syntax -->
        <Rule Id="SA1131" Action="Error"/> <!-- Use readable conditions -->
        <Rule Id="SA1132" Action="Error"/> <!-- Do not combine fields -->
        <Rule Id="SA1133" Action="None"/> <!-- Do not combine attributes -->
        <Rule Id="SA1134" Action="Error"/> <!-- Attributes must not share line -->
        <Rule Id="SA1136" Action="Error"/> <!-- Enum values should be on separate lines -->
        <Rule Id="SA1137" Action="Error"/> <!-- Elements should have the same indentation -->
        <Rule Id="SA1139" Action="Error"/> <!-- Use literals suffix notation instead of casting -->

        <!-- Ordering rules -->
        <Rule Id="SA1200" Action="None"/> <!-- Using directives must be placed correctly -->
        <Rule Id="SA1201" Action="None"/> <!-- Elements must appear in the correct order -->
        <Rule Id="SA1202" Action="None"/> <!-- Elements must be ordered by access -->
        <Rule Id="SA1203" Action="Error"/> <!-- Constants must appear before fields -->
        <Rule Id="SA1204" Action="None"/> <!-- Static elements must appear before instance elements -->
        <Rule Id="SA1205" Action="Error"/> <!-- Partial elements must declare access -->
        <Rule Id="SA1206" Action="Error"/> <!-- Declaration keywords must follow order -->
        <Rule Id="SA1207" Action="Error"/> <!-- Protected must come before internal -->
        <Rule Id="SA1208" Action="Error"/> <!-- System using directives must be placed before other using directives -->
        <Rule Id="SA1209" Action="Error"/> <!-- Using alias directives must be placed after other using directives -->
        <Rule Id="SA1210" Action="Error"/> <!-- Using directives must be ordered alphabetically by namespace -->
        <Rule Id="SA1210" Action="Error"/> <!-- Using directives must be ordered alphabetically by namespace -->
        <Rule Id="SA1211" Action="Error"/> <!-- Using alias directives must be ordered alphabetically by alias name -->
        <Rule Id="SA1212" Action="Error"/> <!-- Property accessors must follow order -->
        <Rule Id="SA1213" Action="Error"/> <!-- Event accessors must follow order -->
        <Rule Id="SA1214" Action="Error"/> <!-- Readonly fields must appear before non-readonly fields -->
        <Rule Id="SA1216" Action="Error"/> <!-- Using static directives must be placed at the correct location. -->
        <Rule Id="SA1217" Action="Error"/> <!-- Using static directives must be ordered alphabetically -->

        <!-- Naming rules -->
        <Rule Id="SA1300" Action="None"/> <!-- Element must begin with upper-case letter -->
        <Rule Id="SA1302" Action="Error"/> <!-- Interface names must begin with I -->
        <Rule Id="SA1303" Action="Error"/> <!-- Const field names must begin with upper-case letter -->
        <Rule Id="SA1304" Action="Error"/> <!-- Non-private readonly fields must begin with upper-case letter -->
        <Rule Id="SA1305" Action="None"/> <!-- Field names must not use Hungarian notation -->
        <Rule Id="SA1306" Action="None"/> <!-- Field names must begin with lower-case letter -->
        <Rule Id="SA1307" Action="Error"/> <!-- Accessible fields must begin with upper-case letter -->
        <Rule Id="SA1308" Action="Error"/> <!-- Variable names must not be prefixed -->
        <Rule Id="SA1309" Action="None"/> <!-- Field names must not begin with underscore -->
        <Rule Id="SX1309" Action="Error"/> <!-- Field names must begin with underscore -->
        <Rule Id="SX1309S" Action="None"/> <!-- Static field names must begin with underscore -->
        <Rule Id="SA1310" Action="None"/> <!-- Field names must not contain underscore -->
        <Rule Id="SA1311" Action="Error"/> <!-- Static readonly fields must begin with upper-case letter -->
        <Rule Id="SA1312" Action="Error"/> <!-- Variable names must begin with lower-case letter -->
        <Rule Id="SA1313" Action="Error"/> <!-- Parameter names must begin with lower-case letter -->
        <Rule Id="SA1314" Action="Error"/> <!-- Type name parameters must begin with T -->

        <!-- Maintainability rules -->
        <Rule Id="SA1400" Action="Error"/> <!-- Access modifier must be declared -->
        <Rule Id="SA1401" Action="Error"/> <!-- Fields must be private -->
        <Rule Id="SA1402" Action="Error"/> <!-- File may only contain a single class -->
        <Rule Id="SA1403" Action="Error"/> <!-- File may only contain a single namespace -->
        <Rule Id="SA1404" Action="Error"/> <!-- Code analysis suppression must have justification -->
        <Rule Id="SA1405" Action="Error"/> <!-- Debug.Assert must provide message text -->
        <Rule Id="SA1406" Action="Error"/> <!-- Debug.Fail must provide message text -->
        <Rule Id="SA1407" Action="Error"/> <!-- Arithmetic expressions must declare precedence -->
        <Rule Id="SA1408" Action="Error"/> <!-- Conditional expressions must declare precedence -->
        <Rule Id="SA1410" Action="Error"/> <!-- Remove delegate parenthesis when possible -->
        <Rule Id="SA1411" Action="Error"/> <!-- Attribute constructor must not use unnecessary parenthesis -->
        <Rule Id="SA1412" Action="None"/> <!-- Store files as UTF-8 with byte order mark -->
        <Rule Id="SA1413" Action="None"/> <!-- Use trailing comma in multi-line initializers -->

        <!-- Layout rules -->
        <Rule Id="SA1500" Action="Error"/> <!-- Braces for multi-line statements must not share line -->
        <Rule Id="SA1501" Action="Error"/> <!-- Statement must not be on a single line -->
        <Rule Id="SA1502" Action="Error"/> <!-- Element must not be on a single line -->
        <Rule Id="SA1503" Action="Error"/> <!-- Braces must not be omitted -->
        <Rule Id="SA1504" Action="Error"/> <!-- All accessors must be single-line or multi-line -->
        <Rule Id="SA1505" Action="Error"/> <!-- Opening braces must not be followed by blank line -->
        <Rule Id="SA1506" Action="Error"/> <!-- Element documentation headers must not be followed by blank line -->
        <Rule Id="SA1507" Action="Error"/> <!-- Code must not contain multiple blank lines in a row -->
        <Rule Id="SA1508" Action="None"/> <!-- Closing braces must not be preceded by blank line -->
        <Rule Id="SA1509" Action="Error"/> <!-- Opening braces must not be preceded by blank line -->
        <Rule Id="SA1510" Action="Error"/> <!-- Chained statement blocks must not be preceded by blank line -->
        <Rule Id="SA1511" Action="Error"/> <!-- While-do footer must not be preceded by blank line -->
        <Rule Id="SA1512" Action="Warning"/> <!-- Single-line comments must not be followed by blank line -->
        <Rule Id="SA1513" Action="None"/> <!-- Closing brace must be followed by blank line -->
        <Rule Id="SA1514" Action="Error"/> <!-- Element documentation header must be preceded by blank line -->
        <Rule Id="SA1515" Action="Error"/> <!-- Single-line comment must be preceded by blank line -->
        <Rule Id="SA1516" Action="Error"/> <!-- Elements must be separated by blank line -->
        <Rule Id="SA1517" Action="Error"/> <!-- Code must not contain blank lines at start of file -->
        <Rule Id="SA1518" Action="Error"/> <!-- Use line endings correctly at end of file -->
        <Rule Id="SA1519" Action="Error"/> <!-- Braces must not be omitted from multi-line child statement -->
        <Rule Id="SA1520" Action="Error"/> <!-- Use braces consistently -->

        <!-- Documentation rules -->
        <Rule Id="SA1600" Action="Error"/> <!-- Elements must be documented -->
        <Rule Id="SA1601" Action="None"/> <!-- Partial elements must be documented -->
        <Rule Id="SA1602" Action="Error"/> <!-- Enumeration items must be documented -->
        <Rule Id="SA1604" Action="Error"/> <!-- Element documentation must have summary -->
        <Rule Id="SA1605" Action="Error"/> <!-- Partial element documentation must have summary -->
        <Rule Id="SA1606" Action="Error"/> <!-- Element documentation must have summary text -->
        <Rule Id="SA1607" Action="Error"/> <!-- Partial element documentation must have summary text -->
        <Rule Id="SA1608" Action="Error"/> <!-- Element documentation must not have default summary -->
        <Rule Id="SA1609" Action="None"/> <!-- Property documentation must have value -->
        <Rule Id="SA1610" Action="None"/> <!-- Property documentation must have value text -->
        <Rule Id="SA1611" Action="Error"/> <!-- Element parameters must be documented -->
        <Rule Id="SA1612" Action="Error"/> <!-- Element parameter documentation must match element parameters -->
        <Rule Id="SA1613" Action="Error"/> <!-- Element parameter documentation must declare parameter name -->
        <Rule Id="SA1614" Action="Error"/> <!-- Element parameter documentation must have text -->
        <Rule Id="SA1615" Action="Error"/> <!-- Element return value must be documented -->
        <Rule Id="SA1616" Action="Error"/> <!-- Element return value documentation must have text -->
        <Rule Id="SA1617" Action="Error"/> <!-- Void return value must not be documented -->
        <Rule Id="SA1618" Action="Error"/> <!-- Generic type parameters must be documented -->
        <Rule Id="SA1619" Action="Error"/> <!-- Generic type parameters must be documented partial class -->
        <Rule Id="SA1620" Action="Error"/> <!-- Generic type parameter documentation must match type parameters -->
        <Rule Id="SA1621" Action="Error"/> <!-- Generic type parameter documentation must declare parameter name -->
        <Rule Id="SA1622" Action="Error"/> <!-- Generic type parameter documentation must have text -->
        <Rule Id="SA1623" Action="None"/> <!-- Property summary documentation must match accessors -->
        <Rule Id="SA1624"
              Action="None"/> <!-- Property summary documentation must omit accessor with restricted access -->
        <Rule Id="SA1625" Action="Error"/> <!-- Element documentation must not be copied and pasted -->
        <Rule Id="SA1626" Action="Error"/> <!-- Single-line comments must not use documentation style slashes -->
        <Rule Id="SA1627" Action="Error"/> <!-- Documentation text must not be empty -->
        <Rule Id="SA1629" Action="Error"/> <!-- Documentation text must end with a period -->
        <Rule Id="SA1633" Action="Error"/> <!-- File must have header -->
        <Rule Id="SA1634" Action="Error"/> <!-- File header must show copyright -->
        <Rule Id="SA1635" Action="Error"/> <!-- File header must have copyright text -->
        <Rule Id="SA1636" Action="Error"/> <!-- File header copyright text must match -->
        <Rule Id="SA1637" Action="Error"/> <!-- File header must contain file name -->
        <Rule Id="SA1638" Action="Error"/> <!-- File header file name documentation must match file name -->
        <Rule Id="SA1639" Action="Error"/> <!-- File header must have summary -->
        <Rule Id="SA1640" Action="Error"/> <!-- File header must have valid company text -->
        <Rule Id="SA1641" Action="Error"/> <!-- File header company name text must match -->
        <Rule Id="SA1642" Action="Error"/> <!-- Constructor summary documentation must begin with standard text -->
        <Rule Id="SA1643" Action="Error"/> <!-- Destructor summary documentation must begin with standard text -->
        <Rule Id="SA1644" Action="Error"/> <!-- Documentation header must not contain blank lines -->
        <Rule Id="SA1648" Action="Error"/> <!-- inheritdoc must be used with inheriting class -->
        <Rule Id="SA1649" Action="Error"/> <!-- File name must match first type name -->
        <Rule Id="SA1651" Action="Error"/> <!-- Do not use placeholder elements -->
    </Rules>
</RuleSet>

Do not follow this link