MCPcopy Create free account
hub / github.com/battlecode/battlecode-2018 / Program

Class Program

bindings/frankenswig/__init__.py:387–457  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

385 to_rust = to_c = to_swig = to_python = lambda self: ''
386
387class Program(object):
388 def __init__(self, module, crate, docs=''):
389 self.module = module
390 self.crate = crate
391 self.docs = docs
392 self.elements = []
393
394 # maintaining the "thing.type" idiom
395 self.string = namedtuple('String', ['type'])(StringType(self.module))
396 self.strref = namedtuple('StrRef', ['type'])(StrRefType(self.module))
397
398 def vec(self, type):
399 vec = self.struct(f"vec::Vec::<{type.orig_rust()}>", module="std", docs=f"An immutable list of {type.orig_rust()} objects")
400 vec.debug()
401 vec.clone()
402 vec.method(usize.type, "len", [], pyname="__len__", docs="The length of the vector.")
403 # TODO impl option and use .get() instead
404 vec.method(type.ref(), "index", [Var(usize.type, "index")], pyname="__getitem__", docs="Copy an element out of the vector.")
405 vec.pyextra(s(''&#x27;\
406 def __iter__(self):
407 l = len(self)
408 for i in range(l):
409 yield self[i]
410 ''&#x27;))
411 return vec
412
413 def add(self, elem):
414 return self
415
416 def format(self, header):
417 return header.format(crate=self.crate, module=self.module, docs=self.docs)
418
419 def to_rust(self):
420 return self.format(RUST_HEADER)\
421 + ''.join(elem.to_rust() for elem in self.elements)\
422 + self.format(RUST_FOOTER)
423
424 def to_c(self):
425 return self.format(C_HEADER)\
426 + ''.join(elem.to_c() for elem in self.elements)\
427 + self.format(C_FOOTER)
428
429 def to_swig(self):
430 return self.format(SWIG_HEADER)\
431 + ''.join(elem.to_swig() for elem in self.elements)\
432 + self.format(SWIG_FOOTER)
433
434 def to_python(self):
435 return self.format(PYTHON_HEADER)\
436 + '\n'.join(elem.to_python() for elem in self.elements)\
437 + self.format(PYTHON_FOOTER)
438
439 def struct(self, *args, **kwargs):
440 result = StructWrapper(self, *args, **kwargs)
441 self.elements.append(result)
442 return result
443
444 def function(self, *args, **kwargs):

Callers 1

generate.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected