< Summary

Class:NanoCLang.Entities.StructField
Assembly:NanoCLang
File(s):C:\GitLab-Runner\builds\JxAESPd8\0\chenmichael\nanoc\src\NanoCLang\Entities\StructField.cs
Covered lines:14
Uncovered lines:4
Coverable lines:18
Total lines:45
Line coverage:77.7% (14 of 18)
Covered branches:8
Total branches:10
Branch coverage:80% (8 of 10)

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.ctor(...)100%1100%
get_Name()100%1100%
get_Binding()100%1100%
Tokens()100%6100%
Equals(...)100%10%
Equals(...)50%4100%
GetHashCode()100%10%
op_Equality(...)100%10%
op_Inequality(...)100%10%

File(s)

C:\GitLab-Runner\builds\JxAESPd8\0\chenmichael\nanoc\src\NanoCLang\Entities\StructField.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3
 4namespace NanoCLang.Entities {
 5    /// <summary>
 6    /// Provides a class for structure fields inside structure definitions.
 7    /// </summary>
 8    public class StructField : Base, IEquatable<StructField?> {
 9        /// <summary>
 10        /// Creates a new instance of a structure field from a <paramref name="name"/> and the accompanying <paramref na
 11        /// </summary>
 6212        public StructField(string name, BlockType binding) {
 3113            Name = name;
 3114            Binding = binding;
 3115        }
 16        /// <summary>
 17        /// Name of the structure field.
 18        /// </summary>
 21419        public string Name { get; }
 20        /// <summary>
 21        /// Binding that belongs to the field.
 22        /// </summary>
 19823        public BlockType Binding { get; }
 24        /// <inheritdoc/>
 625        public override IEnumerable<StringFormatterToken> Tokens(NanoCSourceFormat args) {
 626            yield return Name;
 1227            if (args.SpaceBeforeBindingAssignment) yield return " ";
 628            yield return "=";
 1229            if (args.SpaceAfterBindingAssignment) yield return " ";
 40830            foreach (var tk in Binding.Tokens(args)) yield return tk;
 631        }
 32        #region Equality checks
 33        /// <inheritdoc/>
 034        public override bool Equals(object? obj) => Equals(obj as StructField);
 35        /// <inheritdoc/>
 636        public bool Equals(StructField? other) => !(other is null) && Name == other.Name && EqualityComparer<BlockType>.
 37        /// <inheritdoc/>
 038        public override int GetHashCode() => HashCode.Combine(Name, Binding);
 39        /// <inheritdoc/>
 040        public static bool operator ==(StructField? left, StructField? right) => EqualityComparer<StructField?>.Default.
 41        /// <inheritdoc/>
 042        public static bool operator !=(StructField? left, StructField? right) => !(left == right);
 43        #endregion
 44    }
 45}