lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

kinds.rs (32488B)


      1 pub const KIND_PROFILE: u32 = 0;
      2 pub const KIND_POST: u32 = 1;
      3 pub const KIND_FOLLOW: u32 = 3;
      4 pub const KIND_DELETION_REQUEST: u32 = 5;
      5 pub const KIND_REPOST: u32 = 6;
      6 pub const KIND_REACTION: u32 = 7;
      7 pub const KIND_SEAL: u32 = 13;
      8 pub const KIND_MESSAGE: u32 = 14;
      9 pub const KIND_MESSAGE_FILE: u32 = 15;
     10 pub const KIND_GENERIC_REPOST: u32 = 16;
     11 pub const KIND_APP_CUSTOM_DATA: u32 = 78;
     12 pub const KIND_FARM_CRDT_CHANGE: u32 = KIND_APP_CUSTOM_DATA;
     13 pub const KIND_GIFT_WRAP: u32 = 1059;
     14 pub const KIND_FILE_METADATA: u32 = 1063;
     15 pub const KIND_FARM_FILE_METADATA: u32 = KIND_FILE_METADATA;
     16 pub const KIND_PUBLIC_FILE_METADATA: u32 = KIND_FILE_METADATA;
     17 pub const KIND_COMMENT: u32 = 1111;
     18 pub const KIND_REPORT: u32 = 1984;
     19 pub const KIND_GROUP_PUT_USER: u32 = 9000;
     20 pub const KIND_GROUP_REMOVE_USER: u32 = 9001;
     21 pub const KIND_GROUP_EDIT_METADATA: u32 = 9002;
     22 pub const KIND_GROUP_DELETE_EVENT: u32 = 9005;
     23 pub const KIND_GROUP_CREATE_GROUP: u32 = 9007;
     24 pub const KIND_GROUP_DELETE_GROUP: u32 = 9008;
     25 pub const KIND_GROUP_CREATE_INVITE: u32 = 9009;
     26 pub const KIND_GROUP_JOIN_REQUEST: u32 = 9021;
     27 pub const KIND_GROUP_LEAVE_REQUEST: u32 = 9022;
     28 pub const KIND_GEOCHAT: u32 = 20000;
     29 pub const KIND_RELAY_AUTH: u32 = 22242;
     30 pub const KIND_HTTP_AUTH: u32 = 27235;
     31 pub const KIND_LIST_MUTE: u32 = 10000;
     32 pub const KIND_LIST_PINNED_NOTES: u32 = 10001;
     33 pub const KIND_LIST_READ_WRITE_RELAYS: u32 = 10002;
     34 pub const KIND_LIST_BOOKMARKS: u32 = 10003;
     35 pub const KIND_LIST_COMMUNITIES: u32 = 10004;
     36 pub const KIND_LIST_PUBLIC_CHATS: u32 = 10005;
     37 pub const KIND_LIST_BLOCKED_RELAYS: u32 = 10006;
     38 pub const KIND_LIST_SEARCH_RELAYS: u32 = 10007;
     39 pub const KIND_LIST_SIMPLE_GROUPS: u32 = 10009;
     40 pub const KIND_LIST_RELAY_FEEDS: u32 = 10012;
     41 pub const KIND_LIST_INTERESTS: u32 = 10015;
     42 pub const KIND_LIST_MEDIA_FOLLOWS: u32 = 10020;
     43 pub const KIND_LIST_EMOJIS: u32 = 10030;
     44 pub const KIND_LIST_DM_RELAYS: u32 = 10050;
     45 pub const KIND_LIST_GOOD_WIKI_AUTHORS: u32 = 10101;
     46 pub const KIND_LIST_GOOD_WIKI_RELAYS: u32 = 10102;
     47 pub const KIND_WIKI_MERGE_REQUEST: u32 = 818;
     48 pub const KIND_WIKI_ARTICLE: u32 = 30818;
     49 pub const KIND_WIKI_REDIRECT: u32 = 30819;
     50 pub const KIND_LIST_SET_FOLLOW: u32 = 30000;
     51 pub const KIND_LIST_SET_GENERIC: u32 = 30001;
     52 pub const KIND_LIST_SET_RELAY: u32 = 30002;
     53 pub const KIND_LIST_SET_BOOKMARK: u32 = 30003;
     54 pub const KIND_LIST_SET_CURATION: u32 = 30004;
     55 pub const KIND_LIST_SET_VIDEO: u32 = 30005;
     56 pub const KIND_LIST_SET_PICTURE: u32 = 30006;
     57 pub const KIND_LIST_SET_KIND_MUTE: u32 = 30007;
     58 pub const KIND_LIST_SET_INTEREST: u32 = 30015;
     59 pub const KIND_LIST_SET_EMOJI: u32 = 30030;
     60 pub const KIND_LIST_SET_RELEASE_ARTIFACT: u32 = 30063;
     61 pub const KIND_LIST_SET_APP_CURATION: u32 = 30267;
     62 pub const KIND_ARTICLE: u32 = 30023;
     63 pub const KIND_CALENDAR_DATE_EVENT: u32 = 31922;
     64 pub const KIND_CALENDAR_TIME_EVENT: u32 = 31923;
     65 pub const KIND_LIST_SET_CALENDAR: u32 = 31924;
     66 pub const KIND_CALENDAR: u32 = KIND_LIST_SET_CALENDAR;
     67 pub const KIND_CALENDAR_EVENT_RSVP: u32 = 31925;
     68 pub const KIND_LIST_SET_STARTER_PACK: u32 = 39089;
     69 pub const KIND_LIST_SET_MEDIA_STARTER_PACK: u32 = 39092;
     70 pub const KIND_FARM: u32 = 30340;
     71 pub const KIND_PLOT: u32 = 30350;
     72 pub const KIND_COOP: u32 = 30360;
     73 pub const KIND_DOCUMENT: u32 = 30361;
     74 pub const KIND_RESOURCE_AREA: u32 = 30370;
     75 pub const KIND_RESOURCE_HARVEST_CAP: u32 = 30371;
     76 pub const KIND_ACCOUNT_CLAIM: u32 = 30380;
     77 pub const KIND_VALIDATOR_SET: u32 = 30381;
     78 pub const KIND_APP_DATA: u32 = 30078;
     79 pub const KIND_FARM_WORKSPACE_MANIFEST: u32 = KIND_APP_DATA;
     80 pub const KIND_CLASSIFIED_LISTING: u32 = 30402;
     81 pub const KIND_APPLICATION_HANDLER: u32 = 31990;
     82 pub const KIND_GROUP_METADATA: u32 = 39000;
     83 pub const KIND_GROUP_ADMINS: u32 = 39001;
     84 pub const KIND_GROUP_MEMBERS: u32 = 39002;
     85 pub const KIND_GROUP_ROLES: u32 = 39003;
     86 
     87 pub const KIND_ORDER_REQUEST: u32 = 3422;
     88 pub const KIND_ORDER_DECISION: u32 = 3423;
     89 pub const KIND_ORDER_CANCELLATION: u32 = 3432;
     90 pub const KIND_TRADE_FORBIDDEN_3431: u32 = 3431;
     91 pub const KIND_RHI_EVIDENCE_ATTESTATION: u32 = 3441;
     92 pub const KIND_KNOWLEDGE_CLAIM: u32 = 3460;
     93 pub const KIND_KNOWLEDGE_RELATION: u32 = 3461;
     94 pub const KIND_KNOWLEDGE_REVIEW: u32 = 3462;
     95 pub const KIND_KNOWLEDGE_FIELD_REPORT: u32 = 3463;
     96 pub const KIND_KNOWLEDGE_CHANGE_PROPOSAL: u32 = 3464;
     97 pub const KIND_CONTRIBUTION_ATTESTATION: u32 = 3465;
     98 pub const KIND_TRADE_PROPOSAL: u32 = 3470;
     99 pub const KIND_TRADE_DECISION: u32 = 3471;
    100 pub const KIND_TRADE_REVISION_PROPOSAL: u32 = 3472;
    101 pub const KIND_TRADE_REVISION_DECISION: u32 = 3473;
    102 pub const KIND_TRADE_CANCELLATION: u32 = 3474;
    103 pub const KIND_TRADE_SELLER_RESERVATION_ASSERTION: u32 = 3475;
    104 pub const KIND_KNOWLEDGE_SOURCE: u32 = 30450;
    105 pub const KIND_EVIDENCE_BOUNTY: u32 = 30451;
    106 
    107 pub const CLASSIFIED_LISTING_EVENT_KINDS: [u32; 1] = [KIND_CLASSIFIED_LISTING];
    108 
    109 pub const WIKI_EVENT_KINDS: [u32; 3] = [
    110     KIND_WIKI_MERGE_REQUEST,
    111     KIND_WIKI_ARTICLE,
    112     KIND_WIKI_REDIRECT,
    113 ];
    114 
    115 pub const KNOWLEDGE_MVP_EVENT_KINDS: [u32; 8] = [
    116     KIND_WIKI_MERGE_REQUEST,
    117     KIND_WIKI_ARTICLE,
    118     KIND_WIKI_REDIRECT,
    119     KIND_KNOWLEDGE_SOURCE,
    120     KIND_KNOWLEDGE_CLAIM,
    121     KIND_KNOWLEDGE_RELATION,
    122     KIND_KNOWLEDGE_REVIEW,
    123     KIND_KNOWLEDGE_FIELD_REPORT,
    124 ];
    125 
    126 pub const KNOWLEDGE_BETA_EVENT_KINDS: [u32; 3] = [
    127     KIND_EVIDENCE_BOUNTY,
    128     KIND_KNOWLEDGE_CHANGE_PROPOSAL,
    129     KIND_CONTRIBUTION_ATTESTATION,
    130 ];
    131 
    132 pub const KNOWLEDGE_EVENT_KINDS: [u32; 11] = [
    133     KIND_WIKI_MERGE_REQUEST,
    134     KIND_WIKI_ARTICLE,
    135     KIND_WIKI_REDIRECT,
    136     KIND_KNOWLEDGE_SOURCE,
    137     KIND_KNOWLEDGE_CLAIM,
    138     KIND_KNOWLEDGE_RELATION,
    139     KIND_KNOWLEDGE_REVIEW,
    140     KIND_KNOWLEDGE_FIELD_REPORT,
    141     KIND_EVIDENCE_BOUNTY,
    142     KIND_KNOWLEDGE_CHANGE_PROPOSAL,
    143     KIND_CONTRIBUTION_ATTESTATION,
    144 ];
    145 
    146 pub const KNOWLEDGE_ADDRESSABLE_EVENT_KINDS: [u32; 4] = [
    147     KIND_WIKI_ARTICLE,
    148     KIND_WIKI_REDIRECT,
    149     KIND_KNOWLEDGE_SOURCE,
    150     KIND_EVIDENCE_BOUNTY,
    151 ];
    152 
    153 pub const KNOWLEDGE_REGULAR_EVENT_KINDS: [u32; 7] = [
    154     KIND_WIKI_MERGE_REQUEST,
    155     KIND_KNOWLEDGE_CLAIM,
    156     KIND_KNOWLEDGE_RELATION,
    157     KIND_KNOWLEDGE_REVIEW,
    158     KIND_KNOWLEDGE_FIELD_REPORT,
    159     KIND_KNOWLEDGE_CHANGE_PROPOSAL,
    160     KIND_CONTRIBUTION_ATTESTATION,
    161 ];
    162 
    163 pub const ORDER_EVENT_KINDS: [u32; 3] = [
    164     KIND_ORDER_REQUEST,
    165     KIND_ORDER_DECISION,
    166     KIND_ORDER_CANCELLATION,
    167 ];
    168 
    169 pub const TRADE_MUTATION_EVENT_KINDS: [u32; 5] = [
    170     KIND_TRADE_PROPOSAL,
    171     KIND_TRADE_DECISION,
    172     KIND_TRADE_REVISION_PROPOSAL,
    173     KIND_TRADE_REVISION_DECISION,
    174     KIND_TRADE_CANCELLATION,
    175 ];
    176 
    177 pub const COMMERCIAL_EVENT_KINDS: [u32; 6] = [
    178     KIND_CLASSIFIED_LISTING,
    179     KIND_TRADE_PROPOSAL,
    180     KIND_TRADE_DECISION,
    181     KIND_TRADE_REVISION_PROPOSAL,
    182     KIND_TRADE_REVISION_DECISION,
    183     KIND_TRADE_CANCELLATION,
    184 ];
    185 
    186 pub const KIND_JOB_REQUEST_MIN: u32 = 5000;
    187 pub const KIND_JOB_REQUEST_MAX: u32 = 5999;
    188 pub const KIND_JOB_RESULT_MIN: u32 = 6000;
    189 pub const KIND_JOB_RESULT_MAX: u32 = 6999;
    190 pub const KIND_JOB_FEEDBACK: u32 = 7000;
    191 
    192 pub const HOME_FEED_CANDIDATE_KINDS: [u32; 9] = [
    193     KIND_POST,
    194     KIND_REPOST,
    195     KIND_GENERIC_REPOST,
    196     KIND_ARTICLE,
    197     KIND_CLASSIFIED_LISTING,
    198     KIND_CALENDAR_DATE_EVENT,
    199     KIND_CALENDAR_TIME_EVENT,
    200     KIND_FARM,
    201     KIND_PUBLIC_FILE_METADATA,
    202 ];
    203 
    204 pub const EVENTS_CANDIDATE_KINDS: [u32; 4] = [
    205     KIND_CALENDAR_DATE_EVENT,
    206     KIND_CALENDAR_TIME_EVENT,
    207     KIND_CALENDAR,
    208     KIND_CALENDAR_EVENT_RSVP,
    209 ];
    210 
    211 pub const MARKET_CANDIDATE_KINDS: [u32; 3] = [
    212     KIND_CLASSIFIED_LISTING,
    213     KIND_FARM,
    214     KIND_PUBLIC_FILE_METADATA,
    215 ];
    216 
    217 pub const MAP_CANDIDATE_KINDS: [u32; 7] = [
    218     KIND_FARM,
    219     KIND_CLASSIFIED_LISTING,
    220     KIND_CALENDAR_DATE_EVENT,
    221     KIND_CALENDAR_TIME_EVENT,
    222     KIND_POST,
    223     KIND_ARTICLE,
    224     KIND_PUBLIC_FILE_METADATA,
    225 ];
    226 
    227 pub const PROFILE_PUBLIC_CONTENT_KINDS: [u32; 8] = [
    228     KIND_POST,
    229     KIND_REPOST,
    230     KIND_GENERIC_REPOST,
    231     KIND_ARTICLE,
    232     KIND_CLASSIFIED_LISTING,
    233     KIND_CALENDAR_DATE_EVENT,
    234     KIND_CALENDAR_TIME_EVENT,
    235     KIND_PUBLIC_FILE_METADATA,
    236 ];
    237 
    238 pub const MODERATION_ADMIN_CANDIDATE_KINDS: [u32; 1] = [KIND_REPORT];
    239 
    240 pub const NIP29_GROUP_KINDS: [u32; 13] = [
    241     KIND_GROUP_METADATA,
    242     KIND_GROUP_ADMINS,
    243     KIND_GROUP_MEMBERS,
    244     KIND_GROUP_ROLES,
    245     KIND_GROUP_PUT_USER,
    246     KIND_GROUP_REMOVE_USER,
    247     KIND_GROUP_EDIT_METADATA,
    248     KIND_GROUP_DELETE_EVENT,
    249     KIND_GROUP_CREATE_GROUP,
    250     KIND_GROUP_DELETE_GROUP,
    251     KIND_GROUP_CREATE_INVITE,
    252     KIND_GROUP_JOIN_REQUEST,
    253     KIND_GROUP_LEAVE_REQUEST,
    254 ];
    255 
    256 pub const PRIVATE_FARM_OPS_KINDS: [u32; 16] = [
    257     KIND_FARM_WORKSPACE_MANIFEST,
    258     KIND_FARM_CRDT_CHANGE,
    259     KIND_FARM_FILE_METADATA,
    260     KIND_GROUP_METADATA,
    261     KIND_GROUP_ADMINS,
    262     KIND_GROUP_MEMBERS,
    263     KIND_GROUP_ROLES,
    264     KIND_GROUP_PUT_USER,
    265     KIND_GROUP_REMOVE_USER,
    266     KIND_GROUP_EDIT_METADATA,
    267     KIND_GROUP_DELETE_EVENT,
    268     KIND_GROUP_CREATE_GROUP,
    269     KIND_GROUP_DELETE_GROUP,
    270     KIND_GROUP_CREATE_INVITE,
    271     KIND_GROUP_JOIN_REQUEST,
    272     KIND_GROUP_LEAVE_REQUEST,
    273 ];
    274 
    275 pub const PUBLIC_SOCIAL_KINDS: [u32; 12] = [
    276     KIND_POST,
    277     KIND_DELETION_REQUEST,
    278     KIND_REPOST,
    279     KIND_REACTION,
    280     KIND_GENERIC_REPOST,
    281     KIND_PUBLIC_FILE_METADATA,
    282     KIND_COMMENT,
    283     KIND_ARTICLE,
    284     KIND_CALENDAR_DATE_EVENT,
    285     KIND_CALENDAR_TIME_EVENT,
    286     KIND_CALENDAR,
    287     KIND_CALENDAR_EVENT_RSVP,
    288 ];
    289 
    290 pub const UNAMBIGUOUS_PUBLIC_SOCIAL_KINDS: [u32; 11] = [
    291     KIND_POST,
    292     KIND_DELETION_REQUEST,
    293     KIND_REPOST,
    294     KIND_REACTION,
    295     KIND_GENERIC_REPOST,
    296     KIND_COMMENT,
    297     KIND_ARTICLE,
    298     KIND_CALENDAR_DATE_EVENT,
    299     KIND_CALENDAR_TIME_EVENT,
    300     KIND_CALENDAR,
    301     KIND_CALENDAR_EVENT_RSVP,
    302 ];
    303 
    304 pub const MVP_SOCIAL_KINDS: [u32; 7] = [
    305     KIND_POST,
    306     KIND_DELETION_REQUEST,
    307     KIND_PUBLIC_FILE_METADATA,
    308     KIND_COMMENT,
    309     KIND_ARTICLE,
    310     KIND_CALENDAR_DATE_EVENT,
    311     KIND_CALENDAR_TIME_EVENT,
    312 ];
    313 
    314 pub const PRODUCTION_SOCIAL_KINDS: [u32; 4] = [
    315     KIND_REPOST,
    316     KIND_GENERIC_REPOST,
    317     KIND_CALENDAR,
    318     KIND_CALENDAR_EVENT_RSVP,
    319 ];
    320 
    321 #[inline]
    322 pub const fn is_classified_listing_kind(kind: u32) -> bool {
    323     kind == KIND_CLASSIFIED_LISTING
    324 }
    325 
    326 #[inline]
    327 pub const fn is_public_file_metadata_kind(kind: u32) -> bool {
    328     kind == KIND_PUBLIC_FILE_METADATA
    329 }
    330 
    331 #[inline]
    332 pub const fn is_ambiguous_public_social_kind(kind: u32) -> bool {
    333     kind == KIND_PUBLIC_FILE_METADATA
    334 }
    335 
    336 #[inline]
    337 pub const fn is_unambiguous_public_social_kind(kind: u32) -> bool {
    338     matches!(
    339         kind,
    340         KIND_POST
    341             | KIND_DELETION_REQUEST
    342             | KIND_REPOST
    343             | KIND_REACTION
    344             | KIND_GENERIC_REPOST
    345             | KIND_COMMENT
    346             | KIND_ARTICLE
    347             | KIND_CALENDAR_DATE_EVENT
    348             | KIND_CALENDAR_TIME_EVENT
    349             | KIND_CALENDAR
    350             | KIND_CALENDAR_EVENT_RSVP
    351     )
    352 }
    353 
    354 #[inline]
    355 pub const fn is_public_social_kind(kind: u32) -> bool {
    356     is_unambiguous_public_social_kind(kind) || is_ambiguous_public_social_kind(kind)
    357 }
    358 
    359 #[inline]
    360 pub const fn is_mvp_social_kind(kind: u32) -> bool {
    361     matches!(
    362         kind,
    363         KIND_POST
    364             | KIND_DELETION_REQUEST
    365             | KIND_PUBLIC_FILE_METADATA
    366             | KIND_COMMENT
    367             | KIND_ARTICLE
    368             | KIND_CALENDAR_DATE_EVENT
    369             | KIND_CALENDAR_TIME_EVENT
    370     )
    371 }
    372 
    373 #[inline]
    374 pub const fn is_production_social_kind(kind: u32) -> bool {
    375     matches!(
    376         kind,
    377         KIND_REPOST | KIND_GENERIC_REPOST | KIND_CALENDAR | KIND_CALENDAR_EVENT_RSVP
    378     )
    379 }
    380 
    381 #[inline]
    382 pub const fn is_wiki_event_kind(kind: u32) -> bool {
    383     matches!(
    384         kind,
    385         KIND_WIKI_MERGE_REQUEST | KIND_WIKI_ARTICLE | KIND_WIKI_REDIRECT
    386     )
    387 }
    388 
    389 #[inline]
    390 pub const fn is_knowledge_mvp_event_kind(kind: u32) -> bool {
    391     matches!(
    392         kind,
    393         KIND_WIKI_MERGE_REQUEST
    394             | KIND_WIKI_ARTICLE
    395             | KIND_WIKI_REDIRECT
    396             | KIND_KNOWLEDGE_SOURCE
    397             | KIND_KNOWLEDGE_CLAIM
    398             | KIND_KNOWLEDGE_RELATION
    399             | KIND_KNOWLEDGE_REVIEW
    400             | KIND_KNOWLEDGE_FIELD_REPORT
    401     )
    402 }
    403 
    404 #[inline]
    405 pub const fn is_knowledge_beta_event_kind(kind: u32) -> bool {
    406     matches!(
    407         kind,
    408         KIND_EVIDENCE_BOUNTY | KIND_KNOWLEDGE_CHANGE_PROPOSAL | KIND_CONTRIBUTION_ATTESTATION
    409     )
    410 }
    411 
    412 #[inline]
    413 pub const fn is_knowledge_event_kind(kind: u32) -> bool {
    414     is_knowledge_mvp_event_kind(kind) || is_knowledge_beta_event_kind(kind)
    415 }
    416 
    417 #[inline]
    418 pub const fn is_knowledge_addressable_event_kind(kind: u32) -> bool {
    419     matches!(
    420         kind,
    421         KIND_WIKI_ARTICLE | KIND_WIKI_REDIRECT | KIND_KNOWLEDGE_SOURCE | KIND_EVIDENCE_BOUNTY
    422     )
    423 }
    424 
    425 #[inline]
    426 pub const fn is_knowledge_regular_event_kind(kind: u32) -> bool {
    427     matches!(
    428         kind,
    429         KIND_WIKI_MERGE_REQUEST
    430             | KIND_KNOWLEDGE_CLAIM
    431             | KIND_KNOWLEDGE_RELATION
    432             | KIND_KNOWLEDGE_REVIEW
    433             | KIND_KNOWLEDGE_FIELD_REPORT
    434             | KIND_KNOWLEDGE_CHANGE_PROPOSAL
    435             | KIND_CONTRIBUTION_ATTESTATION
    436     )
    437 }
    438 
    439 #[inline]
    440 pub const fn is_home_feed_candidate_kind(kind: u32) -> bool {
    441     matches!(
    442         kind,
    443         KIND_POST
    444             | KIND_REPOST
    445             | KIND_GENERIC_REPOST
    446             | KIND_ARTICLE
    447             | KIND_CLASSIFIED_LISTING
    448             | KIND_CALENDAR_DATE_EVENT
    449             | KIND_CALENDAR_TIME_EVENT
    450             | KIND_FARM
    451             | KIND_PUBLIC_FILE_METADATA
    452     )
    453 }
    454 
    455 #[inline]
    456 pub const fn is_events_candidate_kind(kind: u32) -> bool {
    457     matches!(
    458         kind,
    459         KIND_CALENDAR_DATE_EVENT
    460             | KIND_CALENDAR_TIME_EVENT
    461             | KIND_CALENDAR
    462             | KIND_CALENDAR_EVENT_RSVP
    463     )
    464 }
    465 
    466 #[inline]
    467 pub const fn is_market_candidate_kind(kind: u32) -> bool {
    468     matches!(
    469         kind,
    470         KIND_CLASSIFIED_LISTING | KIND_FARM | KIND_PUBLIC_FILE_METADATA
    471     )
    472 }
    473 
    474 #[inline]
    475 pub const fn is_map_candidate_kind(kind: u32) -> bool {
    476     matches!(
    477         kind,
    478         KIND_FARM
    479             | KIND_CLASSIFIED_LISTING
    480             | KIND_CALENDAR_DATE_EVENT
    481             | KIND_CALENDAR_TIME_EVENT
    482             | KIND_POST
    483             | KIND_ARTICLE
    484             | KIND_PUBLIC_FILE_METADATA
    485     )
    486 }
    487 
    488 #[inline]
    489 pub const fn is_profile_public_content_kind(kind: u32) -> bool {
    490     matches!(
    491         kind,
    492         KIND_POST
    493             | KIND_REPOST
    494             | KIND_GENERIC_REPOST
    495             | KIND_ARTICLE
    496             | KIND_CLASSIFIED_LISTING
    497             | KIND_CALENDAR_DATE_EVENT
    498             | KIND_CALENDAR_TIME_EVENT
    499             | KIND_PUBLIC_FILE_METADATA
    500     )
    501 }
    502 
    503 #[inline]
    504 pub const fn is_moderation_admin_candidate_kind(kind: u32) -> bool {
    505     kind == KIND_REPORT
    506 }
    507 
    508 #[inline]
    509 pub const fn is_nip29_group_kind(kind: u32) -> bool {
    510     matches!(
    511         kind,
    512         KIND_GROUP_METADATA
    513             | KIND_GROUP_ADMINS
    514             | KIND_GROUP_MEMBERS
    515             | KIND_GROUP_ROLES
    516             | KIND_GROUP_PUT_USER
    517             | KIND_GROUP_REMOVE_USER
    518             | KIND_GROUP_EDIT_METADATA
    519             | KIND_GROUP_DELETE_EVENT
    520             | KIND_GROUP_CREATE_GROUP
    521             | KIND_GROUP_DELETE_GROUP
    522             | KIND_GROUP_CREATE_INVITE
    523             | KIND_GROUP_JOIN_REQUEST
    524             | KIND_GROUP_LEAVE_REQUEST
    525     )
    526 }
    527 
    528 #[inline]
    529 pub const fn is_private_farm_ops_kind(kind: u32) -> bool {
    530     kind == KIND_FARM_WORKSPACE_MANIFEST
    531         || kind == KIND_FARM_CRDT_CHANGE
    532         || kind == KIND_FARM_FILE_METADATA
    533         || is_nip29_group_kind(kind)
    534 }
    535 
    536 #[inline]
    537 pub const fn is_order_event_kind(kind: u32) -> bool {
    538     matches!(
    539         kind,
    540         KIND_ORDER_REQUEST | KIND_ORDER_DECISION | KIND_ORDER_CANCELLATION
    541     )
    542 }
    543 
    544 #[inline]
    545 pub const fn is_trade_mutation_event_kind(kind: u32) -> bool {
    546     matches!(
    547         kind,
    548         KIND_TRADE_PROPOSAL
    549             | KIND_TRADE_DECISION
    550             | KIND_TRADE_REVISION_PROPOSAL
    551             | KIND_TRADE_REVISION_DECISION
    552             | KIND_TRADE_CANCELLATION
    553     )
    554 }
    555 
    556 #[inline]
    557 pub const fn is_commercial_event_kind(kind: u32) -> bool {
    558     is_classified_listing_kind(kind) || is_trade_mutation_event_kind(kind)
    559 }
    560 
    561 #[inline]
    562 pub const fn is_nip51_standard_list_kind(kind: u32) -> bool {
    563     matches!(
    564         kind,
    565         KIND_LIST_MUTE
    566             | KIND_LIST_PINNED_NOTES
    567             | KIND_LIST_READ_WRITE_RELAYS
    568             | KIND_LIST_BOOKMARKS
    569             | KIND_LIST_COMMUNITIES
    570             | KIND_LIST_PUBLIC_CHATS
    571             | KIND_LIST_BLOCKED_RELAYS
    572             | KIND_LIST_SEARCH_RELAYS
    573             | KIND_LIST_SIMPLE_GROUPS
    574             | KIND_LIST_RELAY_FEEDS
    575             | KIND_LIST_INTERESTS
    576             | KIND_LIST_MEDIA_FOLLOWS
    577             | KIND_LIST_EMOJIS
    578             | KIND_LIST_DM_RELAYS
    579             | KIND_LIST_GOOD_WIKI_AUTHORS
    580             | KIND_LIST_GOOD_WIKI_RELAYS
    581     )
    582 }
    583 #[inline]
    584 pub const fn is_nip51_list_set_kind(kind: u32) -> bool {
    585     matches!(
    586         kind,
    587         KIND_LIST_SET_FOLLOW
    588             | KIND_LIST_SET_GENERIC
    589             | KIND_LIST_SET_RELAY
    590             | KIND_LIST_SET_BOOKMARK
    591             | KIND_LIST_SET_CURATION
    592             | KIND_LIST_SET_VIDEO
    593             | KIND_LIST_SET_PICTURE
    594             | KIND_LIST_SET_KIND_MUTE
    595             | KIND_LIST_SET_INTEREST
    596             | KIND_LIST_SET_EMOJI
    597             | KIND_LIST_SET_RELEASE_ARTIFACT
    598             | KIND_LIST_SET_APP_CURATION
    599             | KIND_LIST_SET_CALENDAR
    600             | KIND_LIST_SET_STARTER_PACK
    601             | KIND_LIST_SET_MEDIA_STARTER_PACK
    602     )
    603 }
    604 
    605 #[inline]
    606 pub const fn is_request_kind(kind: u32) -> bool {
    607     kind >= KIND_JOB_REQUEST_MIN && kind <= KIND_JOB_REQUEST_MAX
    608 }
    609 #[inline]
    610 pub const fn is_result_kind(kind: u32) -> bool {
    611     kind >= KIND_JOB_RESULT_MIN && kind <= KIND_JOB_RESULT_MAX
    612 }
    613 #[inline]
    614 pub const fn result_kind_for_request_kind(kind: u32) -> Option<u32> {
    615     if is_request_kind(kind) {
    616         Some(kind + 1000)
    617     } else {
    618         None
    619     }
    620 }
    621 #[inline]
    622 pub const fn request_kind_for_result_kind(kind: u32) -> Option<u32> {
    623     if is_result_kind(kind) {
    624         Some(kind - 1000)
    625     } else {
    626         None
    627     }
    628 }
    629 
    630 #[cfg(test)]
    631 #[cfg_attr(coverage_nightly, coverage(off))]
    632 mod tests {
    633     use super::*;
    634 
    635     #[test]
    636     fn classifies_standard_list_kinds() {
    637         assert!(is_nip51_standard_list_kind(KIND_LIST_MUTE));
    638         assert!(is_nip51_standard_list_kind(KIND_LIST_GOOD_WIKI_RELAYS));
    639         assert!(!is_nip51_standard_list_kind(KIND_PROFILE));
    640     }
    641 
    642     #[test]
    643     fn classifies_list_set_kinds() {
    644         assert!(is_nip51_list_set_kind(KIND_LIST_SET_FOLLOW));
    645         assert!(is_nip51_list_set_kind(KIND_LIST_SET_MEDIA_STARTER_PACK));
    646         assert!(!is_nip51_list_set_kind(KIND_LIST_MUTE));
    647     }
    648 
    649     #[test]
    650     fn maps_job_request_and_result_kinds() {
    651         assert!(is_request_kind(KIND_JOB_REQUEST_MIN));
    652         assert!(is_request_kind(KIND_JOB_REQUEST_MAX));
    653         assert!(!is_request_kind(KIND_JOB_REQUEST_MIN - 1));
    654         assert!(!is_request_kind(KIND_JOB_REQUEST_MAX + 1));
    655 
    656         assert!(is_result_kind(KIND_JOB_RESULT_MIN));
    657         assert!(is_result_kind(KIND_JOB_RESULT_MAX));
    658         assert!(!is_result_kind(KIND_JOB_RESULT_MIN - 1));
    659         assert!(!is_result_kind(KIND_JOB_RESULT_MAX + 1));
    660 
    661         assert_eq!(
    662             result_kind_for_request_kind(KIND_JOB_REQUEST_MIN),
    663             Some(KIND_JOB_RESULT_MIN)
    664         );
    665         assert_eq!(result_kind_for_request_kind(KIND_JOB_RESULT_MIN), None);
    666         assert_eq!(
    667             request_kind_for_result_kind(KIND_JOB_RESULT_MIN),
    668             Some(KIND_JOB_REQUEST_MIN)
    669         );
    670         assert_eq!(request_kind_for_result_kind(KIND_JOB_REQUEST_MIN), None);
    671     }
    672 
    673     #[test]
    674     fn exposes_field_event_kind_aliases() {
    675         assert_eq!(KIND_APP_CUSTOM_DATA, 78);
    676         assert_eq!(KIND_FARM_CRDT_CHANGE, KIND_APP_CUSTOM_DATA);
    677         assert_eq!(KIND_FILE_METADATA, 1063);
    678         assert_eq!(KIND_FARM_FILE_METADATA, KIND_FILE_METADATA);
    679         assert_eq!(KIND_PUBLIC_FILE_METADATA, KIND_FILE_METADATA);
    680         assert_eq!(KIND_FARM_WORKSPACE_MANIFEST, KIND_APP_DATA);
    681         assert_eq!(KIND_RELAY_AUTH, 22242);
    682         assert_eq!(KIND_HTTP_AUTH, 27235);
    683     }
    684 
    685     #[test]
    686     fn exposes_social_event_kind_constants() {
    687         assert_eq!(KIND_DELETION_REQUEST, 5);
    688         assert_eq!(KIND_REPOST, 6);
    689         assert_eq!(KIND_GENERIC_REPOST, 16);
    690         assert_eq!(KIND_REPORT, 1984);
    691         assert_eq!(KIND_ARTICLE, 30023);
    692         assert_eq!(KIND_CALENDAR_DATE_EVENT, 31922);
    693         assert_eq!(KIND_CALENDAR_TIME_EVENT, 31923);
    694         assert_eq!(KIND_CALENDAR, KIND_LIST_SET_CALENDAR);
    695         assert_eq!(KIND_CALENDAR_EVENT_RSVP, 31925);
    696     }
    697 
    698     #[test]
    699     fn classifies_public_social_kinds() {
    700         assert_eq!(PUBLIC_SOCIAL_KINDS.len(), 12);
    701         assert_eq!(UNAMBIGUOUS_PUBLIC_SOCIAL_KINDS.len(), 11);
    702         assert_eq!(MVP_SOCIAL_KINDS.len(), 7);
    703         assert_eq!(PRODUCTION_SOCIAL_KINDS.len(), 4);
    704 
    705         assert!(is_public_social_kind(KIND_POST));
    706         assert!(is_public_social_kind(KIND_DELETION_REQUEST));
    707         assert!(is_public_social_kind(KIND_PUBLIC_FILE_METADATA));
    708         assert!(is_public_file_metadata_kind(KIND_PUBLIC_FILE_METADATA));
    709         assert!(!is_public_file_metadata_kind(KIND_POST));
    710         assert!(is_public_social_kind(KIND_COMMENT));
    711         assert!(is_public_social_kind(KIND_REACTION));
    712         assert!(is_public_social_kind(KIND_ARTICLE));
    713         assert!(is_public_social_kind(KIND_CALENDAR_DATE_EVENT));
    714         assert!(is_public_social_kind(KIND_CALENDAR_TIME_EVENT));
    715         assert!(is_public_social_kind(KIND_REPOST));
    716         assert!(is_public_social_kind(KIND_GENERIC_REPOST));
    717         assert!(is_public_social_kind(KIND_CALENDAR));
    718         assert!(is_public_social_kind(KIND_CALENDAR_EVENT_RSVP));
    719         assert!(!is_public_social_kind(KIND_REPORT));
    720         assert!(!is_public_social_kind(KIND_CLASSIFIED_LISTING));
    721         assert!(!is_public_social_kind(KIND_LIST_READ_WRITE_RELAYS));
    722         assert!(!is_public_social_kind(KIND_FARM_CRDT_CHANGE));
    723         assert!(!is_public_social_kind(KIND_FARM_WORKSPACE_MANIFEST));
    724 
    725         assert!(is_mvp_social_kind(KIND_ARTICLE));
    726         assert!(is_mvp_social_kind(KIND_COMMENT));
    727         assert!(is_mvp_social_kind(KIND_DELETION_REQUEST));
    728         assert!(!is_mvp_social_kind(KIND_REPORT));
    729         assert!(!is_production_social_kind(KIND_REPORT));
    730         assert!(!is_production_social_kind(KIND_ARTICLE));
    731         assert!(is_ambiguous_public_social_kind(KIND_PUBLIC_FILE_METADATA));
    732         assert!(!is_unambiguous_public_social_kind(
    733             KIND_PUBLIC_FILE_METADATA
    734         ));
    735         assert!(is_unambiguous_public_social_kind(KIND_ARTICLE));
    736         assert!(is_unambiguous_public_social_kind(KIND_DELETION_REQUEST));
    737     }
    738 
    739     #[test]
    740     fn classifies_knowledge_event_kinds() {
    741         assert_eq!(
    742             WIKI_EVENT_KINDS,
    743             [
    744                 KIND_WIKI_MERGE_REQUEST,
    745                 KIND_WIKI_ARTICLE,
    746                 KIND_WIKI_REDIRECT
    747             ]
    748         );
    749         assert_eq!(KNOWLEDGE_MVP_EVENT_KINDS.len(), 8);
    750         assert_eq!(KNOWLEDGE_BETA_EVENT_KINDS.len(), 3);
    751         assert_eq!(KNOWLEDGE_EVENT_KINDS.len(), 11);
    752         assert_eq!(KNOWLEDGE_ADDRESSABLE_EVENT_KINDS.len(), 4);
    753         assert_eq!(KNOWLEDGE_REGULAR_EVENT_KINDS.len(), 7);
    754 
    755         assert_eq!(KIND_WIKI_MERGE_REQUEST, 818);
    756         assert_eq!(KIND_WIKI_ARTICLE, 30818);
    757         assert_eq!(KIND_WIKI_REDIRECT, 30819);
    758         assert_eq!(KIND_KNOWLEDGE_SOURCE, 30450);
    759         assert_eq!(KIND_EVIDENCE_BOUNTY, 30451);
    760         assert_eq!(KIND_KNOWLEDGE_CLAIM, 3460);
    761         assert_eq!(KIND_KNOWLEDGE_RELATION, 3461);
    762         assert_eq!(KIND_KNOWLEDGE_REVIEW, 3462);
    763         assert_eq!(KIND_KNOWLEDGE_FIELD_REPORT, 3463);
    764         assert_eq!(KIND_KNOWLEDGE_CHANGE_PROPOSAL, 3464);
    765         assert_eq!(KIND_CONTRIBUTION_ATTESTATION, 3465);
    766 
    767         assert!(is_wiki_event_kind(KIND_WIKI_MERGE_REQUEST));
    768         assert!(is_wiki_event_kind(KIND_WIKI_ARTICLE));
    769         assert!(is_wiki_event_kind(KIND_WIKI_REDIRECT));
    770         assert!(!is_wiki_event_kind(KIND_KNOWLEDGE_CLAIM));
    771         assert!(is_knowledge_event_kind(KIND_WIKI_ARTICLE));
    772         assert!(is_knowledge_event_kind(KIND_KNOWLEDGE_CLAIM));
    773         assert!(is_knowledge_mvp_event_kind(KIND_KNOWLEDGE_FIELD_REPORT));
    774         assert!(is_knowledge_beta_event_kind(KIND_EVIDENCE_BOUNTY));
    775         assert!(is_knowledge_addressable_event_kind(KIND_KNOWLEDGE_SOURCE));
    776         assert!(is_knowledge_addressable_event_kind(KIND_EVIDENCE_BOUNTY));
    777         assert!(is_knowledge_regular_event_kind(KIND_WIKI_MERGE_REQUEST));
    778         assert!(is_knowledge_regular_event_kind(
    779             KIND_CONTRIBUTION_ATTESTATION
    780         ));
    781         assert!(!is_knowledge_regular_event_kind(KIND_KNOWLEDGE_SOURCE));
    782         assert!(!is_knowledge_addressable_event_kind(KIND_KNOWLEDGE_CLAIM));
    783         assert!(!is_knowledge_event_kind(KIND_ARTICLE));
    784     }
    785 
    786     #[test]
    787     fn classifies_product_surface_candidate_kinds() {
    788         assert_eq!(HOME_FEED_CANDIDATE_KINDS.len(), 9);
    789         assert_eq!(EVENTS_CANDIDATE_KINDS.len(), 4);
    790         assert_eq!(MARKET_CANDIDATE_KINDS.len(), 3);
    791         assert_eq!(MAP_CANDIDATE_KINDS.len(), 7);
    792         assert_eq!(PROFILE_PUBLIC_CONTENT_KINDS.len(), 8);
    793         assert_eq!(MODERATION_ADMIN_CANDIDATE_KINDS.len(), 1);
    794         assert_eq!(NIP29_GROUP_KINDS.len(), 13);
    795         assert_eq!(PRIVATE_FARM_OPS_KINDS.len(), 16);
    796 
    797         assert!(is_home_feed_candidate_kind(KIND_POST));
    798         assert!(is_home_feed_candidate_kind(KIND_REPOST));
    799         assert!(is_home_feed_candidate_kind(KIND_GENERIC_REPOST));
    800         assert!(is_home_feed_candidate_kind(KIND_ARTICLE));
    801         assert!(is_home_feed_candidate_kind(KIND_CLASSIFIED_LISTING));
    802         assert!(is_home_feed_candidate_kind(KIND_CALENDAR_DATE_EVENT));
    803         assert!(is_home_feed_candidate_kind(KIND_CALENDAR_TIME_EVENT));
    804         assert!(is_home_feed_candidate_kind(KIND_FARM));
    805         assert!(is_home_feed_candidate_kind(KIND_PUBLIC_FILE_METADATA));
    806         assert!(!is_home_feed_candidate_kind(KIND_REPORT));
    807         assert!(!is_home_feed_candidate_kind(KIND_FARM_CRDT_CHANGE));
    808         assert!(!is_home_feed_candidate_kind(KIND_RELAY_AUTH));
    809         assert!(!is_home_feed_candidate_kind(KIND_HTTP_AUTH));
    810 
    811         assert!(is_events_candidate_kind(KIND_CALENDAR_DATE_EVENT));
    812         assert!(is_events_candidate_kind(KIND_CALENDAR_TIME_EVENT));
    813         assert!(is_events_candidate_kind(KIND_CALENDAR));
    814         assert!(is_events_candidate_kind(KIND_CALENDAR_EVENT_RSVP));
    815         assert!(!is_events_candidate_kind(KIND_POST));
    816         assert!(!is_events_candidate_kind(KIND_FARM_CRDT_CHANGE));
    817 
    818         assert!(is_market_candidate_kind(KIND_CLASSIFIED_LISTING));
    819         assert!(is_market_candidate_kind(KIND_FARM));
    820         assert!(is_market_candidate_kind(KIND_PUBLIC_FILE_METADATA));
    821         assert!(!is_market_candidate_kind(KIND_REPORT));
    822 
    823         assert!(is_map_candidate_kind(KIND_FARM));
    824         assert!(is_map_candidate_kind(KIND_CLASSIFIED_LISTING));
    825         assert!(is_map_candidate_kind(KIND_CALENDAR_DATE_EVENT));
    826         assert!(is_map_candidate_kind(KIND_CALENDAR_TIME_EVENT));
    827         assert!(is_map_candidate_kind(KIND_POST));
    828         assert!(is_map_candidate_kind(KIND_ARTICLE));
    829         assert!(is_map_candidate_kind(KIND_PUBLIC_FILE_METADATA));
    830         assert!(!is_map_candidate_kind(KIND_REPORT));
    831 
    832         assert!(is_profile_public_content_kind(KIND_POST));
    833         assert!(is_profile_public_content_kind(KIND_REPOST));
    834         assert!(is_profile_public_content_kind(KIND_GENERIC_REPOST));
    835         assert!(is_profile_public_content_kind(KIND_ARTICLE));
    836         assert!(is_profile_public_content_kind(KIND_CLASSIFIED_LISTING));
    837         assert!(is_profile_public_content_kind(KIND_CALENDAR_DATE_EVENT));
    838         assert!(is_profile_public_content_kind(KIND_CALENDAR_TIME_EVENT));
    839         assert!(is_profile_public_content_kind(KIND_PUBLIC_FILE_METADATA));
    840         assert!(!is_profile_public_content_kind(KIND_REPORT));
    841 
    842         assert!(is_moderation_admin_candidate_kind(KIND_REPORT));
    843         assert!(!is_moderation_admin_candidate_kind(KIND_POST));
    844 
    845         assert!(is_private_farm_ops_kind(KIND_FARM_WORKSPACE_MANIFEST));
    846         assert!(is_private_farm_ops_kind(KIND_FARM_CRDT_CHANGE));
    847         assert!(is_private_farm_ops_kind(KIND_FARM_FILE_METADATA));
    848         assert!(is_nip29_group_kind(KIND_GROUP_METADATA));
    849         assert!(is_private_farm_ops_kind(KIND_GROUP_METADATA));
    850         assert!(is_private_farm_ops_kind(KIND_GROUP_ADMINS));
    851         assert!(is_private_farm_ops_kind(KIND_GROUP_MEMBERS));
    852         assert!(is_private_farm_ops_kind(KIND_GROUP_ROLES));
    853         assert!(is_private_farm_ops_kind(KIND_GROUP_PUT_USER));
    854         assert!(is_private_farm_ops_kind(KIND_GROUP_REMOVE_USER));
    855         assert!(is_private_farm_ops_kind(KIND_GROUP_EDIT_METADATA));
    856         assert!(is_private_farm_ops_kind(KIND_GROUP_DELETE_EVENT));
    857         assert!(is_private_farm_ops_kind(KIND_GROUP_CREATE_GROUP));
    858         assert!(is_private_farm_ops_kind(KIND_GROUP_DELETE_GROUP));
    859         assert!(is_private_farm_ops_kind(KIND_GROUP_CREATE_INVITE));
    860         assert!(is_private_farm_ops_kind(KIND_GROUP_JOIN_REQUEST));
    861         assert!(is_private_farm_ops_kind(KIND_GROUP_LEAVE_REQUEST));
    862         assert!(!is_private_farm_ops_kind(KIND_RELAY_AUTH));
    863         assert!(!is_private_farm_ops_kind(KIND_HTTP_AUTH));
    864         assert!(!is_private_farm_ops_kind(KIND_REPORT));
    865     }
    866 
    867     #[test]
    868     fn exposes_nip29_group_kind_constants() {
    869         assert_eq!(KIND_GROUP_PUT_USER, 9000);
    870         assert_eq!(KIND_GROUP_REMOVE_USER, 9001);
    871         assert_eq!(KIND_GROUP_EDIT_METADATA, 9002);
    872         assert_eq!(KIND_GROUP_DELETE_EVENT, 9005);
    873         assert_eq!(KIND_GROUP_CREATE_GROUP, 9007);
    874         assert_eq!(KIND_GROUP_DELETE_GROUP, 9008);
    875         assert_eq!(KIND_GROUP_CREATE_INVITE, 9009);
    876         assert_eq!(KIND_GROUP_JOIN_REQUEST, 9021);
    877         assert_eq!(KIND_GROUP_LEAVE_REQUEST, 9022);
    878         assert_eq!(KIND_GROUP_METADATA, 39000);
    879         assert_eq!(KIND_GROUP_ADMINS, 39001);
    880         assert_eq!(KIND_GROUP_MEMBERS, 39002);
    881         assert_eq!(KIND_GROUP_ROLES, 39003);
    882     }
    883 
    884     #[test]
    885     fn classifies_commercial_event_kinds() {
    886         assert_eq!(CLASSIFIED_LISTING_EVENT_KINDS, [KIND_CLASSIFIED_LISTING]);
    887         assert_eq!(
    888             ORDER_EVENT_KINDS,
    889             [
    890                 KIND_ORDER_REQUEST,
    891                 KIND_ORDER_DECISION,
    892                 KIND_ORDER_CANCELLATION
    893             ]
    894         );
    895         assert_eq!(
    896             TRADE_MUTATION_EVENT_KINDS,
    897             [
    898                 KIND_TRADE_PROPOSAL,
    899                 KIND_TRADE_DECISION,
    900                 KIND_TRADE_REVISION_PROPOSAL,
    901                 KIND_TRADE_REVISION_DECISION,
    902                 KIND_TRADE_CANCELLATION,
    903             ]
    904         );
    905         assert_eq!(
    906             COMMERCIAL_EVENT_KINDS,
    907             [
    908                 KIND_CLASSIFIED_LISTING,
    909                 KIND_TRADE_PROPOSAL,
    910                 KIND_TRADE_DECISION,
    911                 KIND_TRADE_REVISION_PROPOSAL,
    912                 KIND_TRADE_REVISION_DECISION,
    913                 KIND_TRADE_CANCELLATION,
    914             ]
    915         );
    916 
    917         assert!(is_classified_listing_kind(KIND_CLASSIFIED_LISTING));
    918         assert!(!is_classified_listing_kind(KIND_PROFILE));
    919 
    920         assert!(is_order_event_kind(KIND_ORDER_REQUEST));
    921         assert!(is_order_event_kind(KIND_ORDER_DECISION));
    922         assert!(is_order_event_kind(KIND_ORDER_CANCELLATION));
    923         assert!(!is_order_event_kind(3424));
    924         assert!(!is_order_event_kind(3425));
    925         assert!(!is_order_event_kind(3433));
    926         assert!(!is_order_event_kind(3434));
    927         assert!(!is_order_event_kind(3435));
    928         assert!(!is_order_event_kind(3436));
    929         assert!(!is_order_event_kind(3440));
    930         assert!(!is_order_event_kind(3431));
    931 
    932         assert!(is_trade_mutation_event_kind(KIND_TRADE_PROPOSAL));
    933         assert!(is_trade_mutation_event_kind(KIND_TRADE_DECISION));
    934         assert!(is_trade_mutation_event_kind(KIND_TRADE_REVISION_PROPOSAL));
    935         assert!(is_trade_mutation_event_kind(KIND_TRADE_REVISION_DECISION));
    936         assert!(is_trade_mutation_event_kind(KIND_TRADE_CANCELLATION));
    937         assert!(!is_trade_mutation_event_kind(KIND_ORDER_REQUEST));
    938         assert!(!is_trade_mutation_event_kind(3440));
    939 
    940         assert!(is_commercial_event_kind(KIND_CLASSIFIED_LISTING));
    941         assert!(is_commercial_event_kind(KIND_TRADE_PROPOSAL));
    942         assert!(!is_commercial_event_kind(3440));
    943         assert!(!is_commercial_event_kind(KIND_ORDER_REQUEST));
    944         assert!(!is_commercial_event_kind(KIND_PROFILE));
    945         assert!(!is_commercial_event_kind(30403));
    946         assert!(!is_commercial_event_kind(5321));
    947         assert!(!is_commercial_event_kind(6321));
    948     }
    949 }