pub struct RemotingCommand { /* private fields */ }Implementations§
Source§impl RemotingCommand
impl RemotingCommand
pub fn set_code(self, code: impl Into<i32>) -> Self
pub fn set_code_ref(&mut self, code: impl Into<i32>)
pub fn set_code_mut(&mut self, code: impl Into<i32>) -> &mut Self
pub fn set_language(self, language: LanguageCode) -> Self
pub fn set_version_ref(&mut self, version: i32)
pub fn set_version(self, version: i32) -> Self
pub fn set_opaque(self, opaque: i32) -> Self
pub fn set_opaque_mut(&mut self, opaque: i32)
pub fn set_remark_option(self, remark: Option<impl Into<CheetahString>>) -> Self
pub fn set_remark(self, remark: impl Into<CheetahString>) -> Self
pub fn set_remark_option_mut( &mut self, remark: Option<impl Into<CheetahString>>, )
pub fn set_remark_mut(&mut self, remark: impl Into<CheetahString>)
pub fn set_ext_fields( self, ext_fields: HashMap<CheetahString, CheetahString>, ) -> Self
pub fn set_body(self, body: impl Into<Bytes>) -> Self
pub fn set_body_mut_ref(&mut self, body: impl Into<Bytes>)
pub fn set_suspended(self, suspended: bool) -> Self
pub fn set_suspended_ref(&mut self, suspended: bool)
pub fn set_serialize_type(self, serialize_type: SerializeType) -> Self
pub fn get_body(&self) -> Option<&Bytes>
pub fn get_body_mut(&mut self) -> Option<&mut Bytes>
pub fn code(&self) -> i32
pub fn request_code(&self) -> RequestCode
pub fn code_ref(&self) -> &i32
pub fn language(&self) -> LanguageCode
pub fn version(&self) -> i32
pub fn rocketmq_version(&self) -> RocketMqVersion
pub fn opaque(&self) -> i32
pub fn remark(&self) -> Option<&CheetahString>
pub fn ext_fields(&self) -> Option<&HashMap<CheetahString, CheetahString>>
pub fn body(&self) -> Option<&Bytes>
pub fn take_body(&mut self) -> Option<Bytes>
pub fn suspended(&self) -> bool
pub fn serialize_type(&self) -> SerializeType
pub fn with_opaque(&mut self, opaque: i32) -> &mut Self
pub fn add_ext_field( &mut self, key: impl Into<CheetahString>, value: impl Into<CheetahString>, ) -> &mut Self
pub fn with_code(&mut self, code: impl Into<i32>) -> &mut Self
pub fn with_remark(&mut self, remark: impl Into<CheetahString>) -> &mut Self
pub fn get_ext_fields(&self) -> Option<&HashMap<CheetahString, CheetahString>>
pub fn add_ext_field_if_not_exist( &mut self, key: impl Into<CheetahString>, value: impl Into<CheetahString>, )
Sourcepub fn ensure_ext_fields_initialized(&mut self)
pub fn ensure_ext_fields_initialized(&mut self)
Ensures the extension fields map is initialized.
If ext_fields is None, initializes it with an empty HashMap.
This method is idempotent and safe to call multiple times.
Source§impl RemotingCommand
impl RemotingCommand
Sourcepub fn with_resolved_defaults(
version: i32,
serialize_type: SerializeType,
) -> Self
pub fn with_resolved_defaults( version: i32, serialize_type: SerializeType, ) -> Self
Constructs a command from defaults resolved by the owning facade.
The protocol crate deliberately does not read process environment or configuration files. Legacy facades resolve those sources and pass the resulting wire values here.
pub fn new_request(code: impl Into<i32>, body: impl Into<Bytes>) -> Self
pub fn create_request_command<T>(code: impl Into<i32>, header: T) -> Self
Sourcepub fn create_request_command_with_defaults<T>(
code: impl Into<i32>,
header: T,
version: i32,
serialize_type: SerializeType,
) -> Self
pub fn create_request_command_with_defaults<T>( code: impl Into<i32>, header: T, version: i32, serialize_type: SerializeType, ) -> Self
Creates a request using defaults resolved by the transport/facade owner.
pub fn create_remoting_command(code: impl Into<i32>) -> Self
pub fn get_and_add() -> i32
pub fn create_response_command_with_code(code: impl Into<i32>) -> Self
Sourcepub fn create_response_command_with_code_and_header(
code: impl Into<i32>,
header: impl CommandCustomHeader + Sync + Send + 'static,
) -> Self
pub fn create_response_command_with_code_and_header( code: impl Into<i32>, header: impl CommandCustomHeader + Sync + Send + 'static, ) -> Self
Creates a response with an explicit code and typed custom header.
pub fn create_response_command_with_code_remark( code: impl Into<i32>, remark: impl Into<CheetahString>, ) -> Self
Sourcepub fn create_success_response_command() -> Self
pub fn create_success_response_command() -> Self
Creates an explicitly successful response.
Sourcepub fn create_success_response_command_with_header(
header: impl CommandCustomHeader + Sync + Send + 'static,
) -> Self
pub fn create_success_response_command_with_header( header: impl CommandCustomHeader + Sync + Send + 'static, ) -> Self
Creates an explicitly successful response with a typed custom header.
Sourcepub fn create_java_default_error_response_command() -> Self
pub fn create_java_default_error_response_command() -> Self
Creates the unset error response used by Java’s typed-header factory.
Sourcepub fn create_java_default_error_response_command_with_header(
header: impl CommandCustomHeader + Sync + Send + 'static,
) -> Self
pub fn create_java_default_error_response_command_with_header( header: impl CommandCustomHeader + Sync + Send + 'static, ) -> Self
Creates the unset Java-compatible error response with a typed header.
pub fn create_new_request_id() -> i32
Source§impl RemotingCommand
impl RemotingCommand
pub fn set_command_custom_header<T>(self, command_custom_header: T) -> Self
pub fn set_command_custom_header_boxed( self, command_custom_header: Box<dyn CommandCustomHeader + Send + Sync + 'static>, ) -> Self
pub fn set_command_custom_header_origin<T>( self, command_custom_header: Option<T>, ) -> Self
pub fn set_command_custom_header_ref<T>(&mut self, command_custom_header: T)
Sourcepub fn try_make_custom_header_to_net(
&mut self,
) -> Result<(), ProtocolContractViolation>
pub fn try_make_custom_header_to_net( &mut self, ) -> Result<(), ProtocolContractViolation>
Fallibly merges the custom header into dynamic extension fields.
§Errors
Returns a typed validation, conversion, alias, or dynamic-field collision error without mutating this command.
pub fn decode_command_custom_header<T>(&self) -> Result<T>
pub fn decode_command_custom_header_fast<T>(&self) -> Result<T>
Sourcepub fn decode_required_header<T>(&self, operation: &'static str) -> Result<T>
pub fn decode_required_header<T>(&self, operation: &'static str) -> Result<T>
Decodes a required custom request header and classifies any failure at the request-header boundary.
operation must be a static, low-cardinality description. It is exposed
as structured error context, while the source retains the decoder cause.
§Errors
Returns a canonical request-header error when the extension fields are absent or the header cannot be decoded.
Sourcepub fn decode_required_header_fast<T>(
&self,
operation: &'static str,
) -> Result<T>
pub fn decode_required_header_fast<T>( &self, operation: &'static str, ) -> Result<T>
Decodes a required custom request header through the fast codec when the header supports it and classifies any failure at the request-header boundary.
operation must be a static, low-cardinality description. It is exposed
as structured error context, while the source retains the decoder cause.
§Errors
Returns a canonical request-header error when the extension fields are absent or the header cannot be decoded.
pub fn try_read_custom_header_ref<T>(&self) -> Result<&T>
pub fn try_read_custom_header_mut<T>(&mut self) -> Result<&mut T>
pub fn command_custom_header_ref(&self) -> Option<&dyn CommandCustomHeader>
pub fn command_custom_header_mut( &mut self, ) -> Option<&mut dyn CommandCustomHeader>
Source§impl RemotingCommand
impl RemotingCommand
Sourcepub fn decode(src: &mut BytesMut) -> Result<Option<RemotingCommand>>
pub fn decode(src: &mut BytesMut) -> Result<Option<RemotingCommand>>
Decodes one command with the historical 16 MiB announced-payload ceiling.
Transport owners with an explicit total-wire limit should use
Self::decode_with_max_frame_bytes so inbound and outbound policy stays symmetric.
Sourcepub fn decode_with_max_frame_bytes(
src: &mut BytesMut,
max_frame_bytes: usize,
) -> Result<Option<RemotingCommand>>
pub fn decode_with_max_frame_bytes( src: &mut BytesMut, max_frame_bytes: usize, ) -> Result<Option<RemotingCommand>>
Decodes one command bounded by a caller-owned complete wire-frame limit.
max_frame_bytes includes the four-byte announced-length prefix.
§Errors
Returns a serialization error for a negative, overflowing, oversized, or malformed frame.
Sourcepub fn header_decode(
src: &mut BytesMut,
header_length: usize,
type_: SerializeType,
) -> Result<Option<RemotingCommand>>
pub fn header_decode( src: &mut BytesMut, header_length: usize, type_: SerializeType, ) -> Result<Option<RemotingCommand>>
Optimized header decoding with type-based dispatch
Source§impl RemotingCommand
impl RemotingCommand
pub fn set_flag(self, flag: i32) -> Self
pub fn mark_response_type(self) -> Self
pub fn mark_response_type_ref(&mut self)
pub fn mark_oneway_rpc(self) -> Self
pub fn mark_oneway_rpc_ref(&mut self)
pub fn get_serialize_type(&self) -> SerializeType
pub fn flag(&self) -> i32
pub fn is_response_type(&self) -> bool
pub fn is_oneway_rpc(&self) -> bool
pub fn get_type(&self) -> RemotingCommandType
Source§impl RemotingCommand
impl RemotingCommand
pub fn mark_serialize_type( header_length: i32, protocol_type: SerializeType, ) -> i32
Source§impl RemotingCommand
impl RemotingCommand
Sourcepub fn create_response_command() -> Self
👎Deprecated: use create_success_response_command for SUCCESS or create_java_default_error_response_command for Java-compatible unset errors
pub fn create_response_command() -> Self
use create_success_response_command for SUCCESS or create_java_default_error_response_command for Java-compatible unset errors
Legacy ambiguous-success response factory.
New code should call Self::create_success_response_command so the
response intent is visible during review. Call
Self::create_java_default_error_response_command when matching
Java’s unset-response behavior instead.
Sourcepub fn create_response_command_with_header(
header: impl CommandCustomHeader + Sync + Send + 'static,
) -> Self
👎Deprecated: use create_success_response_command_with_header for SUCCESS or create_java_default_error_response_command_with_header for Java-compatible unset errors
pub fn create_response_command_with_header( header: impl CommandCustomHeader + Sync + Send + 'static, ) -> Self
use create_success_response_command_with_header for SUCCESS or create_java_default_error_response_command_with_header for Java-compatible unset errors
Legacy ambiguous-success typed-header response factory.
New code should call Self::create_success_response_command_with_header.
Call Self::create_java_default_error_response_command_with_header
when matching Java’s unset-response behavior instead.
Sourcepub fn make_custom_header_to_net(&mut self)
pub fn make_custom_header_to_net(&mut self)
Convert custom header to network format (merge into ext_fields)
pub fn materialize_custom_header_to_ext_fields(&mut self)
pub fn read_custom_header_ref_unchecked<T>(&self) -> Result<&T>
use try_read_custom_header_ref; this compatibility alias is fallible despite its historical unchecked name
Sourcepub fn read_custom_header_mut_from_ref<T>(&mut self) -> Option<&mut T>
👎Deprecated: use read_custom_header_mut; shared-reference mutation is no longer supported
pub fn read_custom_header_mut_from_ref<T>(&mut self) -> Option<&mut T>
use read_custom_header_mut; shared-reference mutation is no longer supported
Compatibility name for the former shared-reference mutation escape.
Mutation now requires exclusive access to this command and succeeds only when the safely shared header is uniquely owned.
pub fn read_custom_header_mut_unchecked<T>(&mut self) -> Result<&mut T>
use try_read_custom_header_mut; this compatibility alias is fallible despite its historical unchecked name
pub fn read_custom_header_ref<T>(&self) -> Option<&T>
pub fn read_custom_header_mut<T>(&mut self) -> Option<&mut T>
Sourcepub fn header_encode(&mut self) -> Option<Bytes>
pub fn header_encode(&mut self) -> Option<Bytes>
Encode header with optimized path selection
pub fn fast_header_encode(&mut self, dst: &mut BytesMut)
Sourcepub fn encode_header(&mut self) -> Option<Bytes>
pub fn encode_header(&mut self) -> Option<Bytes>
Encode header with body length information
Sourcepub fn encode_header_with_body_length(
&mut self,
body_length: usize,
) -> Option<Bytes>
pub fn encode_header_with_body_length( &mut self, body_length: usize, ) -> Option<Bytes>
Optimized header encoding with pre-calculated capacity
Trait Implementations§
Source§impl AsMut<RemotingCommand> for RemotingCommand
impl AsMut<RemotingCommand> for RemotingCommand
Source§fn as_mut(&mut self) -> &mut RemotingCommand
fn as_mut(&mut self) -> &mut RemotingCommand
Source§impl AsRef<RemotingCommand> for RemotingCommand
impl AsRef<RemotingCommand> for RemotingCommand
Source§fn as_ref(&self) -> &RemotingCommand
fn as_ref(&self) -> &RemotingCommand
Source§impl Clone for RemotingCommand
impl Clone for RemotingCommand
Source§impl Default for RemotingCommand
impl Default for RemotingCommand
Source§impl<'de> Deserialize<'de> for RemotingCommand
impl<'de> Deserialize<'de> for RemotingCommand
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for RemotingCommand
impl Display for RemotingCommand
Auto Trait Implementations§
impl !Freeze for RemotingCommand
impl !RefUnwindSafe for RemotingCommand
impl !UnwindSafe for RemotingCommand
impl Send for RemotingCommand
impl Sync for RemotingCommand
impl Unpin for RemotingCommand
impl UnsafeUnpin for RemotingCommand
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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,
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,
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,
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,
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,
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,
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,
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,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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,
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,
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,
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
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
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
self, then passes self.deref() into the pipe function.Source§impl<T> RemotingDeserializable for Twhere
T: DeserializeOwned,
impl<T> RemotingDeserializable for Twhere
T: DeserializeOwned,
Source§impl<T> RemotingSerializable for Twhere
T: Serialize,
impl<T> RemotingSerializable for Twhere
T: Serialize,
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
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
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
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
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
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
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
.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
.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
.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
.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
.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
.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
.tap_deref() only in debug builds, and is erased in release
builds.