kotlin_poet_rs/spec/
annotation_target.rs1use crate::io::RenderKotlin;
2use crate::spec::CodeBlock;
3use crate::tokens;
4
5#[derive(Debug, Clone)]
10pub enum AnnotationTarget {
11 File,
13 Property,
17 Field,
19 Get,
21 Set,
23 Receiver,
25 Param,
27 SetParam,
29 Delegate,
31}
32
33impl RenderKotlin for AnnotationTarget {
34 fn render_into(&self, block: &mut CodeBlock) {
35 let atom = match self {
36 AnnotationTarget::File => tokens::keyword::FILE,
37 AnnotationTarget::Property => tokens::keyword::PROPERTY,
38 AnnotationTarget::Field => tokens::keyword::FIELD,
39 AnnotationTarget::Get => tokens::keyword::GET,
40 AnnotationTarget::Set => tokens::keyword::SET,
41 AnnotationTarget::Receiver => tokens::keyword::RECEIVER,
42 AnnotationTarget::Param => tokens::keyword::PARAM,
43 AnnotationTarget::SetParam => tokens::keyword::SET_PARAM,
44 AnnotationTarget::Delegate => tokens::keyword::DELEGATE,
45 };
46 block.push_atom(atom)
47 }
48}
49
50#[cfg(test)]
51mod tests {
52 use crate::io::RenderKotlin;
53 use crate::spec::AnnotationTarget;
54
55 #[test]
56 fn test_annotation_target() {
57 assert_eq!(AnnotationTarget::Field.render_string(), "field");
58 assert_eq!(AnnotationTarget::File.render_string(), "file");
59 assert_eq!(AnnotationTarget::Get.render_string(), "get");
60 assert_eq!(AnnotationTarget::Param.render_string(), "param");
61 assert_eq!(AnnotationTarget::Property.render_string(), "property");
62 assert_eq!(AnnotationTarget::Receiver.render_string(), "receiver");
63 assert_eq!(AnnotationTarget::Set.render_string(), "set");
64 assert_eq!(AnnotationTarget::SetParam.render_string(), "setparam");
65 assert_eq!(AnnotationTarget::Delegate.render_string(), "delegate");
66 }
67}