Motiejus Jakštys created THRIFT-3316:
----------------------------------------

             Summary: Writing non-flattened struct consts is not allowed
                 Key: THRIFT-3316
                 URL: https://issues.apache.org/jira/browse/THRIFT-3316
             Project: Thrift
          Issue Type: New Feature
    Affects Versions: 0.9.2
            Reporter: Motiejus Jakštys


Compiler does not allow to create const structs referring to other structs. 
E.g.:

{code}
struct Book {
    1: i32 id
}

struct Author {
    1: Book book
}

const Book bookEx1 = { // example instance of Book
    'id': 1
}

const Author AuthorEx1 = { // example instance of Author
    //'book': { 'id': 1 }  // This is a copy from above, but works well
    'book': BookEx1  // this doesn't work, see below
}
{code}

When compiling, it gives the following error:


{code}
$ thrift -v -gen js:ts model.thrift
Scanning model.thrift for includes
Parsing model.thrift for types
[FAILURE:model.thrift:17] type error: const "AuthorEx1.book" was declared as 
struct/xception
{code}

Problem: I want to refer to other defined const structs by already defined 
structs from before (e.g. bookEx1) instead of flattening the values. Am I 
missing something, or is this unsupported?

Use case: for every model, I am creating mock `const` values which the services 
can re-use in their tests.

I asked this on stackoverflow too: 
http://stackoverflow.com/questions/32424858/writing-thrift-schemas-non-flattened-struct-constants-makes-me-repetitive



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to