diff options
Diffstat (limited to '')
-rw-r--r-- | src/jaegertracing/thrift/test/DocTest.thrift | 287 |
1 files changed, 287 insertions, 0 deletions
diff --git a/src/jaegertracing/thrift/test/DocTest.thrift b/src/jaegertracing/thrift/test/DocTest.thrift new file mode 100644 index 000000000..d702b2c23 --- /dev/null +++ b/src/jaegertracing/thrift/test/DocTest.thrift @@ -0,0 +1,287 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * Program doctext. + * + * Seriously, this is the documentation for this whole program. + */ + +namespace java thrift.test +namespace cpp thrift.test + +// C++ comment +/* c style comment */ + +# the new unix comment + +/** Some doc text goes here. Wow I am [nesting these] (no more nesting.) */ +enum Numberz +{ + + /** This is how to document a parameter */ + ONE = 1, + + /** And this is a doc for a parameter that has no specific value assigned */ + TWO, + + THREE, + FIVE = 5, + SIX, + EIGHT = 8 +} + +/** This is how you would do a typedef doc */ +typedef i64 UserId + +/** And this is where you would document a struct */ +struct Xtruct +{ + + /** And the members of a struct */ + 1: string string_thing + + /** doct text goes before a comma */ + 4: i8 byte_thing, + + 9: i32 i32_thing, + 11: i64 i64_thing +} + +/** + * You can document constants now too. Yeehaw! + */ +const i32 INT32CONSTANT = 9853 +const i16 INT16CONSTANT = 1616 +/** Everyone get in on the docu-action! */ +const map<string,string> MAPCONSTANT = {'hello':'world', 'goodnight':'moon'} + +struct Xtruct2 +{ + 1: i8 byte_thing, + 2: Xtruct struct_thing, + 3: i32 i32_thing +} + +/** Struct insanity */ +struct Insanity +{ + + /** This is doc for field 1 */ + 1: map<Numberz, UserId> userMap, + + /** And this is doc for field 2 */ + 2: list<Xtruct> xtructs +} + +exception Xception { + 1: i32 errorCode, + 2: string message +} + +exception Xception2 { + 1: i32 errorCode, + 2: Xtruct struct_thing +} + +/* C1 */ +/** Doc */ +/* C2 */ +/* C3 */ +struct EmptyStruct {} + +struct OneField { + 1: EmptyStruct field +} + +/** This is where you would document a Service */ +service ThriftTest +{ + + /** And this is how you would document functions in a service */ + void testVoid(), + string testString(1: string thing), + i8 testByte(1: byte thing), + i32 testI32(1: i32 thing), + + /** Like this one */ + i64 testI64(1: i64 thing), + double testDouble(1: double thing), + Xtruct testStruct(1: Xtruct thing), + Xtruct2 testNest(1: Xtruct2 thing), + map<i32,i32> testMap(1: map<i32,i32> thing), + set<i32> testSet(1: set<i32> thing), + list<i32> testList(1: list<i32> thing), + + /** This is an example of a function with params documented */ + Numberz testEnum( + + /** This param is a thing */ + 1: Numberz thing + + ), + + UserId testTypedef(1: UserId thing), + + map<i32,map<i32,i32>> testMapMap(1: i32 hello), + + /* So you think you've got this all worked, out eh? */ + map<UserId, map<Numberz,Insanity>> testInsanity(1: Insanity argument), + +} + +/// This style of Doxy-comment doesn't work. +typedef i32 SorryNoGo + +/** + * This is a trivial example of a multiline docstring. + */ +typedef i32 TrivialMultiLine + +/** + * This is the canonical example + * of a multiline docstring. + */ +typedef i32 StandardMultiLine + +/** + * The last line is non-blank. + * I said non-blank! */ +typedef i32 LastLine + +/** Both the first line + * are non blank. ;-) + * and the last line */ +typedef i32 FirstAndLastLine + +/** + * INDENTED TITLE + * The text is less indented. + */ +typedef i32 IndentedTitle + +/** First line indented. + * Unfortunately, this does not get indented. + */ +typedef i32 FirstLineIndent + + +/** + * void code_in_comment() { + * printf("hooray code!"); + * } + */ +typedef i32 CodeInComment + + /** + * Indented Docstring. + * This whole docstring is indented. + * This line is indented further. + */ +typedef i32 IndentedDocstring + +/** Irregular docstring. + * We will have to punt + * on this thing */ +typedef i32 Irregular1 + +/** + * note the space + * before these lines +* but not this + * one + */ +typedef i32 Irregular2 + +/** +* Flush against +* the left. +*/ +typedef i32 Flush + +/** + No stars in this one. + It should still work fine, though. + Including indenting. + */ +typedef i32 NoStars + +/** Trailing whitespace +Sloppy trailing whitespace +is truncated. */ +typedef i32 TrailingWhitespace + +/** + * This is a big one. + * + * We'll have some blank lines in it. + * + * void as_well_as(some code) { + * puts("YEEHAW!"); + * } + */ +typedef i32 BigDog + +/** +* +* +*/ +typedef i32 TotallyDegenerate + +/**no room for newline here*/ + +/* * / */ +typedef i32 TestFor3501a + +/** + * / + */ +typedef i32 TestFor3501b + + +/* Comment-end tokens can of course have more than one asterisk */ +struct TestFor3709_00 { /* ? */ 1: i32 foo } +/* Comment-end tokens can of course have more than one asterisk **/ +struct TestFor3709_01 { /* ? */ 1: i32 foo } +/* Comment-end tokens can of course have more than one asterisk ***/ +struct TestFor3709_02 { /* ? */ 1: i32 foo } +/** Comment-end tokens can of course have more than one asterisk */ +struct TestFor3709_03 { /* ? */ 1: i32 foo } +/** Comment-end tokens can of course have more than one asterisk **/ +struct TestFor3709_04 { /* ? */ 1: i32 foo } +/** Comment-end tokens can of course have more than one asterisk ***/ +struct TestFor3709_05 { /* ? */ 1: i32 foo } +/*** Comment-end tokens can of course have more than one asterisk */ +struct TestFor3709_06 { /* ? */ 1: i32 foo } +/*** Comment-end tokens can of course have more than one asterisk **/ +struct TestFor3709_07 { /* ? */ 1: i32 foo } +/*** Comment-end tokens can of course have more than one asterisk ***/ +struct TestFor3709_08 { /* ? */ 1: i32 foo } + +struct TestFor3709 { + /** This is a comment */ + 1: required string id, + /** This is also a comment **/ + 2: required string typeId, + /** Yet another comment! */ + 3: required i32 endTimestamp +} + + +/* THE END */ |