use std::{error, fmt};
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Eq, Clone, Copy, Deserialize, Serialize, Default)]
pub struct ErrorCode(pub u64);
impl ErrorCode {
pub const CLUSTER_PEER_NOT_MEMBER: ErrorCode = ErrorCode(10040);
pub const CONSUMER_EPHEMERAL_WITH_DURABLE: ErrorCode = ErrorCode(10019);
pub const STREAM_EXTERNAL_DELETE_PREFIX_OVERLAPS: ErrorCode = ErrorCode(10022);
pub const ACCOUNT_RESOURCES_EXCEEDED: ErrorCode = ErrorCode(10002);
pub const CLUSTER_NOT_AVAILABLE: ErrorCode = ErrorCode(10008);
pub const STREAM_SUBJECT_OVERLAP: ErrorCode = ErrorCode(10065);
pub const STREAM_WRONG_LAST_SEQUENCE: ErrorCode = ErrorCode(10071);
pub const NAME_NOT_MATCH_SUBJECT: ErrorCode = ErrorCode(10073);
pub const CLUSTER_NO_PEERS: ErrorCode = ErrorCode(10005);
pub const CONSUMER_EPHEMERAL_WITH_DURABLE_NAME: ErrorCode = ErrorCode(10020);
pub const INSUFFICIENT_RESOURCES: ErrorCode = ErrorCode(10023);
pub const MIRROR_MAX_MESSAGE_SIZE_TOO_BIG: ErrorCode = ErrorCode(10030);
pub const STREAM_DELETE_FAILED: ErrorCode = ErrorCode(10067);
pub const BAD_REQUEST: ErrorCode = ErrorCode(10003);
pub const NOT_SUPPORTED_IN_CLUSTER_MODE: ErrorCode = ErrorCode(10036);
pub const CONSUMER_NOT_FOUND: ErrorCode = ErrorCode(10014);
pub const SOURCE_MAX_MESSAGE_SIZE_TOO_BIG: ErrorCode = ErrorCode(10046);
pub const STREAM_ASSIGNMENT: ErrorCode = ErrorCode(10048);
pub const STREAM_MESSAGE_EXCEEDS_MAXIMUM: ErrorCode = ErrorCode(10054);
pub const STREAM_CREATE_TEMPLATE: ErrorCode = ErrorCode(10066);
pub const INVALID_JSON: ErrorCode = ErrorCode(10025);
pub const STREAM_INVALID_EXTERNAL_DELIVERY_SUBJECT: ErrorCode = ErrorCode(10024);
pub const STREAM_RESTORE: ErrorCode = ErrorCode(10062);
pub const CLUSTER_INCOMPLETE: ErrorCode = ErrorCode(10004);
pub const NO_ACCOUNT: ErrorCode = ErrorCode(10035);
pub const RAFT_GENERAL: ErrorCode = ErrorCode(10041);
pub const RESTORE_SUBSCRIBE_FAILED: ErrorCode = ErrorCode(10042);
pub const STREAM_DELETE: ErrorCode = ErrorCode(10050);
pub const STREAM_EXTERNAL_API_OVERLAP: ErrorCode = ErrorCode(10021);
pub const MIRROR_WITH_SUBJECTS: ErrorCode = ErrorCode(10034);
pub const JETSTREAM_NOT_ENABLED: ErrorCode = ErrorCode(10076);
pub const JETSTREAM_NOT_ENABLED_FOR_ACCOUNT: ErrorCode = ErrorCode(10039);
pub const SEQUENCE_NOT_FOUND: ErrorCode = ErrorCode(10043);
pub const STREAM_MIRROR_NOT_UPDATABLE: ErrorCode = ErrorCode(10055);
pub const STREAM_SEQUENCE_NOT_MATCH: ErrorCode = ErrorCode(10063);
pub const STREAM_WRONG_LAST_MESSAGE_ID: ErrorCode = ErrorCode(10070);
pub const TEMP_STORAGE_FAILED: ErrorCode = ErrorCode(10072);
pub const STORAGE_RESOURCES_EXCEEDED: ErrorCode = ErrorCode(10047);
pub const STREAM_MISMATCH: ErrorCode = ErrorCode(10056);
pub const STREAM_NOT_MATCH: ErrorCode = ErrorCode(10060);
pub const MIRROR_CONSUMER_SETUP_FAILED: ErrorCode = ErrorCode(10029);
pub const NOT_EMPTY_REQUEST: ErrorCode = ErrorCode(10038);
pub const STREAM_NAME_EXIST: ErrorCode = ErrorCode(10058);
pub const CLUSTER_TAGS: ErrorCode = ErrorCode(10011);
pub const MAXIMUM_CONSUMERS_LIMIT: ErrorCode = ErrorCode(10026);
pub const SOURCE_CONSUMER_SETUP_FAILED: ErrorCode = ErrorCode(10045);
pub const CONSUMER_CREATE: ErrorCode = ErrorCode(10012);
pub const CONSUMER_DURABLE_NAME_NOT_IN_SUBJECT: ErrorCode = ErrorCode(10016);
pub const STREAM_LIMITS: ErrorCode = ErrorCode(10053);
pub const STREAM_REPLICAS_NOT_UPDATABLE: ErrorCode = ErrorCode(10061);
pub const STREAM_TEMPLATE_NOT_FOUND: ErrorCode = ErrorCode(10068);
pub const CLUSTER_NOT_ASSIGNED: ErrorCode = ErrorCode(10007);
pub const CLUSTER_NOT_LEADER: ErrorCode = ErrorCode(10009);
pub const CONSUMER_NAME_EXIST: ErrorCode = ErrorCode(10013);
pub const MIRROR_WITH_SOURCES: ErrorCode = ErrorCode(10031);
pub const STREAM_NOT_FOUND: ErrorCode = ErrorCode(10059);
pub const CLUSTER_REQUIRED: ErrorCode = ErrorCode(10010);
pub const CONSUMER_DURABLE_NAME_NOT_SET: ErrorCode = ErrorCode(10018);
pub const MAXIMUM_STREAMS_LIMIT: ErrorCode = ErrorCode(10027);
pub const MIRROR_WITH_START_SEQUENCE_AND_TIME: ErrorCode = ErrorCode(10032);
pub const STREAM_SNAPSHOT: ErrorCode = ErrorCode(10064);
pub const STREAM_UPDATE: ErrorCode = ErrorCode(10069);
pub const CLUSTER_NOT_ACTIVE: ErrorCode = ErrorCode(10006);
pub const CONSUMER_DURABLE_NAME_NOT_MATCH_SUBJECT: ErrorCode = ErrorCode(10017);
pub const MEMORY_RESOURCES_EXCEEDED: ErrorCode = ErrorCode(10028);
pub const MIRROR_WITH_SUBJECT_FILTERS: ErrorCode = ErrorCode(10033);
pub const STREAM_CREATE: ErrorCode = ErrorCode(10049);
pub const CLUSTER_SERVER_NOT_MEMBER: ErrorCode = ErrorCode(10044);
pub const NO_MESSAGE_FOUND: ErrorCode = ErrorCode(10037);
pub const SNAPSHOT_DELIVER_SUBJECT_INVALID: ErrorCode = ErrorCode(10015);
pub const STREAM_GENERALOR: ErrorCode = ErrorCode(10051);
pub const STREAM_INVALID_CONFIG: ErrorCode = ErrorCode(10052);
pub const STREAM_REPLICAS_NOT_SUPPORTED: ErrorCode = ErrorCode(10074);
pub const STREAM_MESSAGE_DELETE_FAILED: ErrorCode = ErrorCode(10057);
pub const PEER_REMAP: ErrorCode = ErrorCode(10075);
pub const STREAM_STORE_FAILED: ErrorCode = ErrorCode(10077);
pub const CONSUMER_CONFIG_REQUIRED: ErrorCode = ErrorCode(10078);
pub const CONSUMER_DELIVER_TO_WILDCARDS: ErrorCode = ErrorCode(10079);
pub const CONSUMER_PUSH_MAX_WAITING: ErrorCode = ErrorCode(10080);
pub const CONSUMER_DELIVER_CYCLE: ErrorCode = ErrorCode(10081);
pub const CONSUMER_MAX_PENDING_ACK_POLICY_REQUIRED: ErrorCode = ErrorCode(10082);
pub const CONSUMER_SMALL_HEARTBEAT: ErrorCode = ErrorCode(10083);
pub const CONSUMER_PULL_REQUIRES_ACK: ErrorCode = ErrorCode(10084);
pub const CONSUMER_PULL_NOT_DURABLE: ErrorCode = ErrorCode(10085);
pub const CONSUMER_PULL_WITH_RATE_LIMIT: ErrorCode = ErrorCode(10086);
pub const CONSUMER_MAX_WAITING_NEGATIVE: ErrorCode = ErrorCode(10087);
pub const CONSUMER_HEARTBEAT_REQUIRES_PUSH: ErrorCode = ErrorCode(10088);
pub const CONSUMER_FLOW_CONTROL_REQUIRES_PUSH: ErrorCode = ErrorCode(10089);
pub const CONSUMER_DIRECT_REQUIRES_PUSH: ErrorCode = ErrorCode(10090);
pub const CONSUMER_DIRECT_REQUIRES_EPHEMERAL: ErrorCode = ErrorCode(10091);
pub const CONSUMER_ON_MAPPED: ErrorCode = ErrorCode(10092);
pub const CONSUMER_FILTER_NOT_SUBSET: ErrorCode = ErrorCode(10093);
pub const CONSUMER_INVALID_POLICY: ErrorCode = ErrorCode(10094);
pub const CONSUMER_INVALID_SAMPLING: ErrorCode = ErrorCode(10095);
pub const STREAM_INVALID: ErrorCode = ErrorCode(10096);
pub const CONSUMER_WQ_REQUIRES_EXPLICIT_ACK: ErrorCode = ErrorCode(10098);
pub const CONSUMER_WQ_MULTIPLE_UNFILTERED: ErrorCode = ErrorCode(10099);
pub const CONSUMER_WQ_CONSUMER_NOT_UNIQUE: ErrorCode = ErrorCode(10100);
pub const CONSUMER_WQ_CONSUMER_NOT_DELIVER_ALL: ErrorCode = ErrorCode(10101);
pub const CONSUMER_NAME_TOO_LONG: ErrorCode = ErrorCode(10102);
pub const CONSUMER_BAD_DURABLE_NAME: ErrorCode = ErrorCode(10103);
pub const CONSUMER_STORE_FAILED: ErrorCode = ErrorCode(10104);
pub const CONSUMER_EXISTING_ACTIVE: ErrorCode = ErrorCode(10105);
pub const CONSUMER_REPLACEMENT_WITH_DIFFERENT_NAME: ErrorCode = ErrorCode(10106);
pub const CONSUMER_DESCRIPTION_TOO_LONG: ErrorCode = ErrorCode(10107);
pub const STREAM_HEADER_EXCEEDS_MAXIMUM: ErrorCode = ErrorCode(10097);
pub const CONSUMER_WITH_FLOW_CONTROL_NEEDS_HEARTBEATS: ErrorCode = ErrorCode(10108);
pub const STREAM_SEALED: ErrorCode = ErrorCode(10109);
pub const STREAM_PURGE_FAILED: ErrorCode = ErrorCode(10110);
pub const STREAM_ROLLUP_FAILED: ErrorCode = ErrorCode(10111);
pub const CONSUMER_INVALID_DELIVER_SUBJECT: ErrorCode = ErrorCode(10112);
pub const STREAM_MAX_BYTES_REQUIRED: ErrorCode = ErrorCode(10113);
pub const CONSUMER_MAX_REQUEST_BATCH_NEGATIVE: ErrorCode = ErrorCode(10114);
pub const CONSUMER_MAX_REQUEST_EXPIRES_TO_SMALL: ErrorCode = ErrorCode(10115);
pub const CONSUMER_MAX_DELIVER_BACKOFF: ErrorCode = ErrorCode(10116);
pub const STREAM_INFO_MAX_SUBJECTS: ErrorCode = ErrorCode(10117);
pub const STREAM_OFFLINE: ErrorCode = ErrorCode(10118);
pub const CONSUMER_OFFLINE: ErrorCode = ErrorCode(10119);
pub const NO_LIMITS: ErrorCode = ErrorCode(10120);
pub const CONSUMER_MAX_PENDING_ACK_EXCESS: ErrorCode = ErrorCode(10121);
pub const STREAM_MAX_STREAM_BYTES_EXCEEDED: ErrorCode = ErrorCode(10122);
pub const STREAM_MOVE_AND_SCALE: ErrorCode = ErrorCode(10123);
pub const STREAM_MOVE_IN_PROGRESS: ErrorCode = ErrorCode(10124);
pub const CONSUMER_MAX_REQUEST_BATCH_EXCEEDED: ErrorCode = ErrorCode(10125);
pub const CONSUMER_REPLICAS_EXCEEDS_STREAM: ErrorCode = ErrorCode(10126);
pub const CONSUMER_NAME_CONTAINS_PATH_SEPARATORS: ErrorCode = ErrorCode(10127);
pub const STREAM_NAME_CONTAINS_PATH_SEPARATORS: ErrorCode = ErrorCode(10128);
pub const STREAM_MOVE_NOT_IN_PROGRESS: ErrorCode = ErrorCode(10129);
pub const STREAM_NAME_EXIST_RESTORE_FAILED: ErrorCode = ErrorCode(10130);
pub const CONSUMER_CREATE_FILTER_SUBJECT_MISMATCH: ErrorCode = ErrorCode(10131);
pub const CONSUMER_CREATE_DURABLE_AND_NAME_MISMATCH: ErrorCode = ErrorCode(10132);
pub const REPLICAS_COUNT_CANNOT_BE_NEGATIVE: ErrorCode = ErrorCode(10133);
pub const CONSUMER_REPLICAS_SHOULD_MATCH_STREAM: ErrorCode = ErrorCode(10134);
pub const CONSUMER_METADATA_LENGTH: ErrorCode = ErrorCode(10135);
pub const CONSUMER_DUPLICATE_FILTER_SUBJECTS: ErrorCode = ErrorCode(10136);
pub const CONSUMER_MULTIPLE_FILTERS_NOT_ALLOWED: ErrorCode = ErrorCode(10137);
pub const CONSUMER_OVERLAPPING_SUBJECT_FILTERS: ErrorCode = ErrorCode(10138);
pub const CONSUMER_EMPTY_FILTER: ErrorCode = ErrorCode(10139);
pub const SOURCE_DUPLICATE_DETECTED: ErrorCode = ErrorCode(10140);
pub const SOURCE_INVALID_STREAM_NAME: ErrorCode = ErrorCode(10141);
pub const MIRROR_INVALID_STREAM_NAME: ErrorCode = ErrorCode(10142);
pub const MIRROR_WITH_FIRST_SEQ: ErrorCode = ErrorCode(10143);
pub const SOURCE_MULTIPLE_FILTERS_NOT_ALLOWED: ErrorCode = ErrorCode(10144);
pub const SOURCE_INVALID_SUBJECT_FILTER: ErrorCode = ErrorCode(10145);
pub const SOURCE_INVALID_TRANSFORM_DESTINATION: ErrorCode = ErrorCode(10146);
pub const SOURCE_OVERLAPPING_SUBJECT_FILTERS: ErrorCode = ErrorCode(10147);
pub const CONSUMER_ALREADY_EXISTS: ErrorCode = ErrorCode(10148);
pub const CONSUMER_DOES_NOT_EXIST: ErrorCode = ErrorCode(10149);
pub const MIRROR_MULTIPLE_FILTERS_NOT_ALLOWED: ErrorCode = ErrorCode(10150);
pub const MIRROR_INVALID_SUBJECT_FILTER: ErrorCode = ErrorCode(10151);
pub const MIRROR_OVERLAPPING_SUBJECT_FILTERS: ErrorCode = ErrorCode(10152);
pub const CONSUMER_INACTIVE_THRESHOLD_EXCESS: ErrorCode = ErrorCode(10153);
pub const MIRROR_INVALID_TRANSFORM_DESTINATION: ErrorCode = ErrorCode(10154);
pub const STREAM_TRANSFORM_INVALID_SOURCE: ErrorCode = ErrorCode(10155);
pub const STREAM_TRANSFORM_INVALID_DESTINATION: ErrorCode = ErrorCode(10156);
pub const PEDANTIC: ErrorCode = ErrorCode(10157);
pub const STREAM_DUPLICATE_MESSAGE_CONFLICT: ErrorCode = ErrorCode(10158);
pub const CONSUMER_PRIORITY_POLICY_WITHOUT_GROUP: ErrorCode = ErrorCode(10159);
pub const CONSUMER_INVALID_PRIORITY_GROUP: ErrorCode = ErrorCode(10160);
pub const CONSUMER_EMPTY_GROUP_NAME: ErrorCode = ErrorCode(10161);
pub const CONSUMER_INVALID_GROUP_NAME: ErrorCode = ErrorCode(10162);
pub const STREAM_EXPECTED_LAST_SEQ_PER_SUBJECT_NOT_READY: ErrorCode = ErrorCode(10163);
pub const STREAM_WRONG_LAST_SEQUENCE_CONSTANT: ErrorCode = ErrorCode(10164);
pub const MESSAGE_TTL_INVALID: ErrorCode = ErrorCode(10165);
pub const MESSAGE_TTL_DISABLED: ErrorCode = ErrorCode(10166);
pub const STREAM_TOO_MANY_REQUESTS: ErrorCode = ErrorCode(10167);
pub const MESSAGE_INCR_DISABLED: ErrorCode = ErrorCode(10168);
pub const MESSAGE_INCR_MISSING: ErrorCode = ErrorCode(10169);
pub const MESSAGE_INCR_PAYLOAD: ErrorCode = ErrorCode(10170);
pub const MESSAGE_INCR_INVALID: ErrorCode = ErrorCode(10171);
pub const MESSAGE_COUNTER_BROKEN: ErrorCode = ErrorCode(10172);
pub const MIRROR_WITH_COUNTERS: ErrorCode = ErrorCode(10173);
pub const ATOMIC_PUBLISH_DISABLED: ErrorCode = ErrorCode(10174);
pub const ATOMIC_PUBLISH_MISSING_SEQ: ErrorCode = ErrorCode(10175);
pub const ATOMIC_PUBLISH_INCOMPLETE_BATCH: ErrorCode = ErrorCode(10176);
pub const ATOMIC_PUBLISH_UNSUPPORTED_HEADER: ErrorCode = ErrorCode(10177);
pub const CONSUMER_PUSH_WITH_PRIORITY_GROUP: ErrorCode = ErrorCode(10178);
pub const ATOMIC_PUBLISH_INVALID_BATCH_ID: ErrorCode = ErrorCode(10179);
pub const STREAM_MIN_LAST_SEQ: ErrorCode = ErrorCode(10180);
pub const CONSUMER_ACK_POLICY_INVALID: ErrorCode = ErrorCode(10181);
pub const CONSUMER_REPLAY_POLICY_INVALID: ErrorCode = ErrorCode(10182);
pub const CONSUMER_ACK_WAIT_NEGATIVE: ErrorCode = ErrorCode(10183);
pub const CONSUMER_BACKOFF_NEGATIVE: ErrorCode = ErrorCode(10184);
pub const REQUIRED_API_LEVEL: ErrorCode = ErrorCode(10185);
pub const MIRROR_WITH_MSG_SCHEDULES: ErrorCode = ErrorCode(10186);
pub const SOURCE_WITH_MSG_SCHEDULES: ErrorCode = ErrorCode(10187);
pub const MESSAGE_SCHEDULES_DISABLED: ErrorCode = ErrorCode(10188);
pub const MESSAGE_SCHEDULES_PATTERN_INVALID: ErrorCode = ErrorCode(10189);
pub const MESSAGE_SCHEDULES_TARGET_INVALID: ErrorCode = ErrorCode(10190);
pub const MESSAGE_SCHEDULES_TTL_INVALID: ErrorCode = ErrorCode(10191);
pub const MESSAGE_SCHEDULES_ROLLUP_INVALID: ErrorCode = ErrorCode(10192);
pub const STREAM_EXPECTED_LAST_SEQ_PER_SUBJECT_INVALID: ErrorCode = ErrorCode(10193);
pub const STREAM_OFFLINE_REASON: ErrorCode = ErrorCode(10194);
pub const CONSUMER_OFFLINE_REASON: ErrorCode = ErrorCode(10195);
pub const CONSUMER_PRIORITY_GROUP_WITH_POLICY_NONE: ErrorCode = ErrorCode(10196);
pub const CONSUMER_PINNED_TTL_WITHOUT_PRIORITY_POLICY_NONE: ErrorCode = ErrorCode(10197);
pub const MIRROR_WITH_ATOMIC_PUBLISH: ErrorCode = ErrorCode(10198);
pub const ATOMIC_PUBLISH_TOO_LARGE_BATCH: ErrorCode = ErrorCode(10199);
pub const ATOMIC_PUBLISH_INVALID_BATCH_COMMIT: ErrorCode = ErrorCode(10200);
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
pub struct Error {
code: usize,
#[serde(default)]
err_code: ErrorCode,
description: Option<String>,
}
impl Error {
pub fn code(&self) -> usize {
self.code
}
pub fn error_code(&self) -> ErrorCode {
self.err_code
}
pub fn kind(&self) -> ErrorCode {
self.err_code
}
}
impl fmt::Display for Error {
fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
fmt,
"{} (code {}, error code {})",
self.description.as_ref().unwrap_or(&"unknown".to_string()),
self.code,
self.err_code.0,
)
}
}
impl error::Error for Error {}