Riven/srcgen/consts/queue.rs.dt

45 lines
1.3 KiB
Plaintext
Raw Normal View History

2019-10-23 08:20:34 +00:00
{{
const dotUtils = require('./dotUtils.js');
const queues = require('./.queues.json');
const groupedQueues = queues.groupBy(({ map, description }) => {
const name = dotUtils.changeCase.constantCase((map || '').replace("'", ''))
+ '_' + dotUtils.changeCase.constantCase((description || '').replace(/\s+(?=\d)/g, ''));
2019-10-23 08:20:34 +00:00
return name;
});
}}{{= dotUtils.preamble() }}
use serde_repr::{ Serialize_repr, Deserialize_repr };
use num_enum::{ IntoPrimitive, TryFromPrimitive };
2019-10-23 08:20:34 +00:00
/// League of Legends matchmaking queue.
2019-10-30 20:29:23 +00:00
#[non_exhaustive]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq)]
#[derive(Serialize_repr, Deserialize_repr)]
#[derive(IntoPrimitive, TryFromPrimitive)]
#[repr(u16)]
2019-10-23 08:20:34 +00:00
pub enum Queue {
{{
for (let [ groupName, colQueues ] of groupedQueues) {
}}
{{
for (let { queueId, map, description, notes } of colQueues) {
const doc = (description ? description + ' games on ' : '') + map;
const deprecated = (notes || '').toUpperCase().indexOf('DEPRECATED') >= 0;
const name = groupName + ((colQueues.length > 1 && deprecated) ? '_DEPRECATED' : '');
2019-10-23 08:20:34 +00:00
}}
/// {{= doc }}.
{{? notes }}
2019-10-23 08:24:15 +00:00
/// <br>{{= notes }}
2019-10-23 08:20:34 +00:00
{{?}}
{{? deprecated}}
#[deprecated(note="{{= notes }}")]
{{?}}
{{= name }} = {{= queueId }},
{{
}
}
}}
}