use direct references to types to generate documentation

Signed-off-by: Petros Angelatos <petrosagg@gmail.com>
This commit is contained in:
Petros Angelatos
2020-12-18 20:23:27 +01:00
parent 38b1ed145c
commit b5923b277c
4 changed files with 18 additions and 26 deletions

View File

@@ -6,7 +6,7 @@
find_fattest_resource, build_all_params, pass_through, parts_from_params,
REQUEST_MARKER_TRAIT, RESPONSE_MARKER_TRAIT, supports_scopes, to_api_version,
to_fqan, METHODS_RESOURCE, ADD_PARAM_MEDIA_EXAMPLE, PROTOCOL_TYPE_INFO, enclose_in,
upload_action_fn, schema_doc_format, METHODS_BUILDER_MARKER_TRAIT,
upload_action_fn, METHODS_BUILDER_MARKER_TRAIT, DELEGATE_TYPE,
to_extern_crate_name, rust_doc_sanitize)
def pretty_name(name):
@@ -23,12 +23,12 @@
<%
# fr == fattest resource, the fatter, the more important, right ?
fr = find_fattest_resource(c)
hub_url = 'struct.' + hub_type(c.schemas, util.canonical_name()) + '.html'
call_builder_url = 'trait.' + CALL_BUILDER_MARKERT_TRAIT + '.html'
delegate_url = 'trait.Delegate.html'
request_trait_url = 'trait.' + REQUEST_MARKER_TRAIT + '.html'
response_trait_url = 'trait.' + RESPONSE_MARKER_TRAIT + '.html'
part_trait_url = 'trait.' + PART_MARKER_TRAIT + '.html'
hub_url = hub_type(c.schemas, util.canonical_name())
call_builder_url = CALL_BUILDER_MARKERT_TRAIT
delegate_url = DELEGATE_TYPE
request_trait_url = REQUEST_MARKER_TRAIT
response_trait_url = RESPONSE_MARKER_TRAIT
part_trait_url = PART_MARKER_TRAIT
doc_base_url = util.doc_base_url() + '/' + to_extern_crate_name(util.crate_name()) + '/'
@@ -83,13 +83,12 @@ It seems there is nothing you can do here ... .
<%
md_methods = list()
for method in sorted(c.rta_map[r]):
md_methods.append(link('*%s*' % pretty_name(method),
'struct.%s.html' % mb_type(r, method)))
md_methods.append(link('*%s*' % pretty_name(method), mb_type(r, method)))
md_resource = pretty_name(r)
sn = singular(canonical_type_name(r))
if sn in schemas:
md_resource = link(md_resource, schema_doc_format(schemas[sn]) % sn)
md_resource = link(md_resource, sn)
%>\
* ${md_resource}
* ${put_and(md_methods)}
@@ -101,7 +100,7 @@ Other activities are ...
% endif
% for method in sorted(c.rta_map[METHODS_RESOURCE]):
* ${link(pretty_name(method), 'struct.%s.html' % mb_type(METHODS_RESOURCE, method))}
* ${link(pretty_name(method), mb_type(METHODS_RESOURCE, method))}
% endfor
% endif
@@ -116,7 +115,7 @@ ${method_type} supported by ...
if resource != METHODS_RESOURCE:
name_parts.append(pretty_name(resource))
%>\
* ${link('*%s*' % ' '.join(name_parts), 'struct.%s.html' % mb_type(resource, method))}
* ${link('*%s*' % ' '.join(name_parts), mb_type(resource, method))}
% endfor ## for each method
% endif ## if methods
@@ -133,9 +132,9 @@ The API is structured into the following primary items:
* **${link('Hub', hub_url)}**
* a central object to maintain state and allow accessing all *Activities*
* creates ${link('*Method Builders*', 'trait.' + METHODS_BUILDER_MARKER_TRAIT + '.html')} which in turn
* creates ${link('*Method Builders*', METHODS_BUILDER_MARKER_TRAIT)} which in turn
allow access to individual ${link('*Call Builders*', call_builder_url)}
* **${link('Resources', 'trait.' + RESOURCE_MARKER_TRAIT + '.html')}**
* **${link('Resources', RESOURCE_MARKER_TRAIT)}**
* primary types that you can apply *Activities* to
* a collection of properties and *Parts*
* **${link('Parts', part_trait_url)}**
@@ -193,7 +192,7 @@ ${self.hub_usage_example(c, rust_doc, fr=fr)}\
${'##'} Handling Errors
All errors produced by the system are provided either as ${link('Result', 'enum.Result.html')} enumeration as return value of
All errors produced by the system are provided either as ${link('Result', 'cmn::Result')} enumeration as return value of
the ${api.terms.action}() methods, or handed as possibly intermediate results to either the
${link('Hub Delegate', delegate_url)}, or the ${link('Authenticator Delegate', urls.authenticator_delegate)}.
@@ -201,9 +200,9 @@ When delegates handle errors or intermediate values, they may have a chance to i
makes the system potentially resilient to all kinds of errors.
${'##'} Uploads and Downloads
If a method supports downloads, the response body, which is part of the ${link('Result', 'enum.Result.html')}, should be
If a method supports downloads, the response body, which is part of the ${link('Result', 'cmn::Result')}, should be
read by you to obtain the media.
If such a method also supports a ${link('Response Result', 'trait.ResponseResult.html')}, it will return that by default.
If such a method also supports a ${link('Response Result', 'ResponseResult')}, it will return that by default.
You can see it as meta-data for the actual media. To trigger a media download, you will have to set up the builder by making
this call: `${ADD_PARAM_MEDIA_EXAMPLE}`.

View File

@@ -146,7 +146,7 @@ The list links the activity name, along with information about where it is used
name_suffix = ' ' + split_camelcase_s(name)
if name == METHODS_RESOURCE:
name_suffix = ''
struct_url = 'struct.' + mb_type(name, method) + '.html'
struct_url = mb_type(name, method)
method_name = ' '.join(split_camelcase_s(method).split('.')) + name_suffix
value_type = '|'.join(iot) or 'none'
%>\

View File

@@ -563,13 +563,6 @@ def rust_copy_value_s(n, tn, p):
def schema_to_required_property(s, n):
return type(s)({'name': n, TREF: s.id, 'priority': REQUEST_PRIORITY, 'is_query_param': False})
# Return relative URL format to the given schema. Handles structs and enums accordingly
def schema_doc_format(s):
prefix = 'struct.'
if 'variant' in s:
prefix = 'enum.'
return prefix + '%s.html'
def is_required_property(p):
return p.get('required', False) or p.get('priority', 0) > 0

View File

@@ -139,7 +139,7 @@ pub trait Delegate {
/// between various API calls.
fn begin(&mut self, MethodInfo) {}
/// Called whenever there is an [HttpError](http://hyperium.github.io/hyper/hyper/error/enum.HttpError.html), usually if there are network problems.
/// Called whenever there is an [HttpError](hyper::Error), usually if there are network problems.
///
/// If you choose to retry after a duration, the duration should be chosen using the
/// [exponential backoff algorithm](http://en.wikipedia.org/wiki/Exponential_backoff).