pub enum MspCommandCode {
Show 147 variants
MSP_API_VERSION = 1,
MSP_FC_VARIANT = 2,
MSP_FC_VERSION = 3,
MSP_BOARD_INFO = 4,
MSP_BUILD_INFO = 5,
MSP_BATTERY_CONFIG = 32,
MSP_SET_BATTERY_CONFIG = 33,
MSP_MODE_RANGES = 34,
MSP_SET_MODE_RANGE = 35,
MSP_FEATURE = 36,
MSP_SET_FEATURE = 37,
MSP_BOARD_ALIGNMENT = 38,
MSP_SET_BOARD_ALIGNMENT = 39,
MSP_AMPERAGE_METER_CONFIG = 40,
MSP_SET_AMPERAGE_METER_CONFIG = 41,
MSP_MIXER = 42,
MSP_SET_MIXER = 43,
MSP_RX_CONFIG = 44,
MSP_SET_RX_CONFIG = 45,
MSP_LED_COLORS = 46,
MSP_SET_LED_COLORS = 47,
MSP_LED_STRIP_CONFIG = 48,
MSP_SET_LED_STRIP_CONFIG = 49,
MSP_RSSI_CONFIG = 50,
MSP_SET_RSSI_CONFIG = 51,
MSP_ADJUSTMENT_RANGES = 52,
MSP_SET_ADJUSTMENT_RANGE = 53,
MSP_CF_SERIAL_CONFIG = 54,
MSP_SET_CF_SERIAL_CONFIG = 55,
MSP_VOLTAGE_METER_CONFIG = 56,
MSP_SET_VOLTAGE_METER_CONFIG = 57,
MSP_SONAR = 58,
MSP_PID_CONTROLLER = 59,
MSP_SET_PID_CONTROLLER = 60,
MSP_ARMING_CONFIG = 61,
MSP_SET_ARMING_CONFIG = 62,
MSP_DATAFLASH_SUMMARY = 70,
MSP_DATAFLASH_READ = 71,
MSP_DATAFLASH_ERASE = 72,
MSP_LOOP_TIME = 73,
MSP_SET_LOOP_TIME = 74,
MSP_FAILSAFE_CONFIG = 75,
MSP_SET_FAILSAFE_CONFIG = 76,
MSP_RXFAIL_CONFIG = 77,
MSP_SET_RXFAIL_CONFIG = 78,
MSP_SDCARD_SUMMARY = 79,
MSP_BLACKBOX_CONFIG = 80,
MSP_SET_BLACKBOX_CONFIG = 81,
MSP_TRANSPONDER_CONFIG = 82,
MSP_SET_TRANSPONDER_CONFIG = 83,
MSP_OSD_CONFIG = 84,
MSP_SET_OSD_CONFIG = 85,
MSP_OSD_CHAR_READ = 86,
MSP_OSD_CHAR_WRITE = 87,
MSP_LED_STRIP_MODECOLOR = 127,
MSP_SET_LED_STRIP_MODECOLOR = 221,
MSP_VOLTAGE_METERS = 128,
MSP_AMPERAGE_METERS = 129,
MSP_BATTERY_STATE = 130,
MSP_MOTOR_CONFIG = 131,
MSP_OSD_VIDEO_CONFIG = 180,
MSP_SET_OSD_VIDEO_CONFIG = 181,
MSP_OSD_VIDEO_STATUS = 182,
MSP_OSD_ELEMENT_SUMMARY = 183,
MSP_OSD_LAYOUT_CONFIG = 184,
MSP_SET_OSD_LAYOUT_CONFIG = 185,
MSP_IDENT = 100,
MSP_STATUS = 101,
MSP_RAW_IMU = 102,
MSP_SERVO = 103,
MSP_MOTOR = 104,
MSP_RC = 105,
MSP_RAW_GPS = 106,
MSP_COMP_GPS = 107,
MSP_ATTITUDE = 108,
MSP_ALTITUDE = 109,
MSP_ANALOG = 110,
MSP_RC_TUNING = 111,
MSP_PID = 112,
MSP_BOX = 113,
MSP_MISC = 114,
MSP_MOTOR_PINS = 115,
MSP_BOXNAMES = 116,
MSP_PIDNAMES = 117,
MSP_WP = 118,
MSP_BOXIDS = 119,
MSP_SERVO_CONFIGURATIONS = 120,
MSP_MOTOR_3D_CONFIG = 124,
MSP_RC_DEADBAND = 125,
MSP_SENSOR_ALIGNMENT = 126,
MSP_SET_RAW_RC = 200,
MSP_SET_RAW_GPS = 201,
MSP_SET_PID = 202,
MSP_SET_BOX = 203,
MSP_SET_RC_TUNING = 204,
MSP_ACC_CALIBRATION = 205,
MSP_MAG_CALIBRATION = 206,
MSP_SET_MISC = 207,
MSP_RESET_CONF = 208,
MSP_SET_WP = 209,
MSP_SELECT_SETTING = 210,
MSP_SET_HEAD = 211,
MSP_SET_SERVO_CONFIGURATION = 212,
MSP_SET_MOTOR = 214,
MSP_SET_3D = 217,
MSP_SET_RC_DEADBAND = 218,
MSP_SET_RESET_CURR_PID = 219,
MSP_SET_SENSOR_ALIGNMENT = 220,
MSP_SERVO_MIX_RULES = 241,
MSP_SET_SERVO_MIX_RULE = 242,
MSP_EEPROM_WRITE = 250,
MSP_DEBUGMSG = 253,
MSP_DEBUG = 254,
MSP_BF_CONFIG = 66,
MSP_UID = 160,
MSP_STATUS_EX = 150,
MSP_ACC_TRIM = 240,
MSP_SET_ACC_TRIM = 239,
MSP_GPS_SV_INFO = 164,
MSP_RX_MAP = 64,
MSP_SET_RX_MAP = 65,
MSP_SET_REBOOT = 68,
MSP_BF_BUILD_INFO = 69,
MSP_ADVANCED_CONFIG = 90,
MSP_SET_ADVANCED_CONFIG = 91,
MSP_FILTER_CONFIG = 92,
MSP_SET_FILTER_CONFIG = 93,
MSP_PID_ADVANCED = 94,
MSP_SET_PID_ADVANCED = 95,
MSP_SENSOR_CONFIG = 96,
MSP_SET_SENSOR_CONFIG = 97,
MSP2_COMMON_SETTING = 4_099,
MSP2_COMMON_SET_SETTING = 4_100,
MSP2_MOTOR_MIXER = 4_101,
MSP2_SET_MOTOR_MIXER = 4_102,
MSP2_COMMON_SETTING_INFO = 4_103,
MSP2_COMMON_PG_LIST = 4_104,
MSP2_SERIAL_CONFIG = 4_105,
MSP2_SET_SERIAL_CONFIG = 4_106,
MSP2_INAV_OSD_LAYOUTS = 8_210,
MSP2_INAV_OSD_SET_LAYOUT_ITEM = 8_211,
MSP2_INAV_OSD_ALARMS = 8_212,
MSP2_INAV_OSD_SET_ALARMS = 8_213,
MSP2_INAV_OSD_PREFERENCES = 8_214,
MSP2_INAV_OSD_SET_PREFERENCES = 8_215,
MSP2_INAV_SERVO_MIXER = 8_224,
MSP2_INAV_SET_SERVO_MIXER = 8_225,
}
Expand description
MSP command values, used for command encapsulation
Variants§
MSP_API_VERSION = 1
MSP_FC_VARIANT = 2
MSP_FC_VERSION = 3
MSP_BOARD_INFO = 4
MSP_BUILD_INFO = 5
MSP_BATTERY_CONFIG = 32
MSP_SET_BATTERY_CONFIG = 33
MSP_MODE_RANGES = 34
MSP_SET_MODE_RANGE = 35
MSP_FEATURE = 36
MSP_SET_FEATURE = 37
MSP_BOARD_ALIGNMENT = 38
MSP_SET_BOARD_ALIGNMENT = 39
MSP_AMPERAGE_METER_CONFIG = 40
MSP_SET_AMPERAGE_METER_CONFIG = 41
MSP_MIXER = 42
MSP_SET_MIXER = 43
MSP_RX_CONFIG = 44
MSP_SET_RX_CONFIG = 45
MSP_LED_COLORS = 46
MSP_SET_LED_COLORS = 47
MSP_LED_STRIP_CONFIG = 48
MSP_SET_LED_STRIP_CONFIG = 49
MSP_RSSI_CONFIG = 50
MSP_SET_RSSI_CONFIG = 51
MSP_ADJUSTMENT_RANGES = 52
MSP_SET_ADJUSTMENT_RANGE = 53
MSP_CF_SERIAL_CONFIG = 54
MSP_SET_CF_SERIAL_CONFIG = 55
MSP_VOLTAGE_METER_CONFIG = 56
MSP_SET_VOLTAGE_METER_CONFIG = 57
MSP_SONAR = 58
MSP_PID_CONTROLLER = 59
MSP_SET_PID_CONTROLLER = 60
MSP_ARMING_CONFIG = 61
MSP_SET_ARMING_CONFIG = 62
MSP_DATAFLASH_SUMMARY = 70
MSP_DATAFLASH_READ = 71
MSP_DATAFLASH_ERASE = 72
MSP_LOOP_TIME = 73
MSP_SET_LOOP_TIME = 74
MSP_FAILSAFE_CONFIG = 75
MSP_SET_FAILSAFE_CONFIG = 76
MSP_RXFAIL_CONFIG = 77
MSP_SET_RXFAIL_CONFIG = 78
MSP_SDCARD_SUMMARY = 79
MSP_BLACKBOX_CONFIG = 80
MSP_SET_BLACKBOX_CONFIG = 81
MSP_TRANSPONDER_CONFIG = 82
MSP_SET_TRANSPONDER_CONFIG = 83
MSP_OSD_CONFIG = 84
MSP_SET_OSD_CONFIG = 85
MSP_OSD_CHAR_READ = 86
MSP_OSD_CHAR_WRITE = 87
MSP_LED_STRIP_MODECOLOR = 127
MSP_SET_LED_STRIP_MODECOLOR = 221
MSP_VOLTAGE_METERS = 128
MSP_AMPERAGE_METERS = 129
MSP_BATTERY_STATE = 130
MSP_MOTOR_CONFIG = 131
MSP_OSD_VIDEO_CONFIG = 180
MSP_SET_OSD_VIDEO_CONFIG = 181
MSP_OSD_VIDEO_STATUS = 182
MSP_OSD_ELEMENT_SUMMARY = 183
MSP_OSD_LAYOUT_CONFIG = 184
MSP_SET_OSD_LAYOUT_CONFIG = 185
MSP_IDENT = 100
MSP_STATUS = 101
MSP_RAW_IMU = 102
MSP_SERVO = 103
MSP_MOTOR = 104
MSP_RC = 105
MSP_RAW_GPS = 106
MSP_COMP_GPS = 107
MSP_ATTITUDE = 108
MSP_ALTITUDE = 109
MSP_ANALOG = 110
MSP_RC_TUNING = 111
MSP_PID = 112
MSP_BOX = 113
MSP_MISC = 114
MSP_MOTOR_PINS = 115
MSP_BOXNAMES = 116
MSP_PIDNAMES = 117
MSP_WP = 118
MSP_BOXIDS = 119
MSP_SERVO_CONFIGURATIONS = 120
MSP_MOTOR_3D_CONFIG = 124
MSP_RC_DEADBAND = 125
MSP_SENSOR_ALIGNMENT = 126
MSP_SET_RAW_RC = 200
MSP_SET_RAW_GPS = 201
MSP_SET_PID = 202
MSP_SET_BOX = 203
MSP_SET_RC_TUNING = 204
MSP_ACC_CALIBRATION = 205
MSP_MAG_CALIBRATION = 206
MSP_SET_MISC = 207
MSP_RESET_CONF = 208
MSP_SET_WP = 209
MSP_SELECT_SETTING = 210
MSP_SET_HEAD = 211
MSP_SET_SERVO_CONFIGURATION = 212
MSP_SET_MOTOR = 214
MSP_SET_3D = 217
MSP_SET_RC_DEADBAND = 218
MSP_SET_RESET_CURR_PID = 219
MSP_SET_SENSOR_ALIGNMENT = 220
MSP_SERVO_MIX_RULES = 241
MSP_SET_SERVO_MIX_RULE = 242
MSP_EEPROM_WRITE = 250
MSP_DEBUGMSG = 253
MSP_DEBUG = 254
MSP_BF_CONFIG = 66
MSP_UID = 160
MSP_STATUS_EX = 150
MSP_ACC_TRIM = 240
MSP_SET_ACC_TRIM = 239
MSP_GPS_SV_INFO = 164
MSP_RX_MAP = 64
MSP_SET_RX_MAP = 65
MSP_SET_REBOOT = 68
MSP_BF_BUILD_INFO = 69
MSP_ADVANCED_CONFIG = 90
MSP_SET_ADVANCED_CONFIG = 91
MSP_FILTER_CONFIG = 92
MSP_SET_FILTER_CONFIG = 93
MSP_PID_ADVANCED = 94
MSP_SET_PID_ADVANCED = 95
MSP_SENSOR_CONFIG = 96
MSP_SET_SENSOR_CONFIG = 97
MSP2_COMMON_SETTING = 4_099
MSP2_COMMON_SET_SETTING = 4_100
MSP2_MOTOR_MIXER = 4_101
MSP2_SET_MOTOR_MIXER = 4_102
MSP2_COMMON_SETTING_INFO = 4_103
MSP2_COMMON_PG_LIST = 4_104
MSP2_SERIAL_CONFIG = 4_105
MSP2_SET_SERIAL_CONFIG = 4_106
MSP2_INAV_OSD_LAYOUTS = 8_210
MSP2_INAV_OSD_SET_LAYOUT_ITEM = 8_211
MSP2_INAV_OSD_ALARMS = 8_212
MSP2_INAV_OSD_SET_ALARMS = 8_213
MSP2_INAV_OSD_PREFERENCES = 8_214
MSP2_INAV_OSD_SET_PREFERENCES = 8_215
MSP2_INAV_SERVO_MIXER = 8_224
MSP2_INAV_SET_SERVO_MIXER = 8_225
Trait Implementations§
Source§impl Clone for MspCommandCode
impl Clone for MspCommandCode
Source§fn clone(&self) -> MspCommandCode
fn clone(&self) -> MspCommandCode
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for MspCommandCode
impl Debug for MspCommandCode
Source§impl From<u16> for MspCommandCode
impl From<u16> for MspCommandCode
Source§impl PartialEq for MspCommandCode
impl PartialEq for MspCommandCode
Source§impl PrimitiveEnum for MspCommandCode
impl PrimitiveEnum for MspCommandCode
Source§fn from_primitive(val: u16) -> Option<Self>
fn from_primitive(val: u16) -> Option<Self>
Convert from a primitive, might fail.
Source§fn to_primitive(&self) -> u16
fn to_primitive(&self) -> u16
Convert to a primitive value.
Source§fn from_str(s: &str) -> Option<Self>
fn from_str(s: &str) -> Option<Self>
Convert from a string value representing the variant. Case sensitive.
Source§fn from_str_lower(s: &str) -> Option<Self>
fn from_str_lower(s: &str) -> Option<Self>
Convert from a string value representing the variant. Lowercase.
Source§impl PrimitiveEnumDynamicStr for MspCommandCode
impl PrimitiveEnumDynamicStr for MspCommandCode
Source§fn to_display_str(&self) -> Cow<'static, str>
fn to_display_str(&self) -> Cow<'static, str>
Display value, same as the name of a particular variant.
Source§fn all_variants() -> Cow<'static, [Self]>
fn all_variants() -> Cow<'static, [Self]>
A list all possible string variants.
Source§impl PrimitiveEnumStaticStr for MspCommandCode
impl PrimitiveEnumStaticStr for MspCommandCode
Source§fn to_display_str(&self) -> &'static str
fn to_display_str(&self) -> &'static str
Display value, same as the name of a particular variant.
Source§fn all_variants() -> &'static [Self]
fn all_variants() -> &'static [Self]
A list all possible string variants.
impl Copy for MspCommandCode
impl StructuralPartialEq for MspCommandCode
Auto Trait Implementations§
impl Freeze for MspCommandCode
impl RefUnwindSafe for MspCommandCode
impl Send for MspCommandCode
impl Sync for MspCommandCode
impl Unpin for MspCommandCode
impl UnwindSafe for MspCommandCode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.