enum

CWE::Structure

Inherits Enum < Comparable < Value < Object

Internal structure of a Weakness. MITRE encodes this as the Structure attribute on <Weakness> and uses it to mark Compound entries (Chain, Composite) vs the standard Simple form.

Constants

Simple = 0
Composite = 1
Chain = 2
Other = 3

Constructors

new(pull : JSON::PullParser) : Structure
Source
parse_label(s : String | Nil) : Structure

Unlike the other label enums, an absent structure is not unknown: MITRE's schema declares Structure with default="Simple", so an entry that omits the attribute is Simple. Only a present-but-unfamiliar label maps to Other. This also keeps a Weakness parsed from a document without the field equal to one built through the constructor, whose structure parameter has always defaulted to Simple.

Source

Instance methods

chain?

Returns true if this enum value equals Chain

Source
composite?

Returns true if this enum value equals Composite

Source
other?

Returns true if this enum value equals Other

Source
simple?

Returns true if this enum value equals Simple

Source
to_json(json : JSON::Builder) : Nil

JSON label round-trip; see Abstraction#to_json.

Source
to_s(io : IO) : Nil

Appends a String representation of this enum member to the given io.

See also: to_s.

Source
to_s

Returns a String representation of this enum member. In the case of regular enums, this is just the name of the member. In the case of flag enums, it's the names joined by vertical bars, or "None", if the value is zero.

If an enum's value doesn't match a member's value, the raw value is returned as a string.

Color::Red.to_s                     # => "Red"
IOMode::None.to_s                   # => "None"
(IOMode::Read | IOMode::Write).to_s # => "Read | Write"

Color.new(10).to_s # => "10"
Source