github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/appdef/impl_query.go (about)

     1  /*
     2   * Copyright (c) 2023-present Sigma-Soft, Ltd.
     3   * @author: Nikolay Nikitin
     4   */
     5  
     6  package appdef
     7  
     8  // # Implements:
     9  //   - IQuery
    10  type query struct {
    11  	function
    12  }
    13  
    14  func newQuery(app *appDef, name QName) *query {
    15  	q := &query{}
    16  	q.function = makeFunc(app, name, TypeKind_Query)
    17  	app.appendType(q)
    18  	return q
    19  }
    20  
    21  func (q *query) isQuery() {}
    22  
    23  // # Implements:
    24  //   - IQueryBuilder
    25  type queryBuilder struct {
    26  	functionBuilder
    27  	*query
    28  }
    29  
    30  func newQueryBuilder(q *query) *queryBuilder {
    31  	return &queryBuilder{
    32  		functionBuilder: makeFunctionBuilder(&q.function),
    33  		query:           q,
    34  	}
    35  }