///|
fn main {
let args = @env.args()
let record = @lib.parse_record(demo_record()) catch {
error => {
println("moonbit-genbank: " + error.message())
return
}
}
if args.contains("--json") {
println(record.to_json_string())
} else {
print_summary(record)
}
}
///|
fn print_summary(record : @lib.Record) -> Unit {
println("accession: \{record.accession}")
println("locus: \{record.locus.name} (\{record.locus.length} bp)")
println("features: \{record.features.length()}")
println("cds checks: \{record.check_cds_translations().length()}")
}
///|
fn demo_record() -> String {
let text =
#|LOCUS DEMO0001 12 bp DNA linear SYN 28-JUL-2026
#|DEFINITION Minimal MoonBit GenBank demo record.
#|ACCESSION DEMO0001
#|FEATURES Location/Qualifiers
#| source 1..12
#| /organism="synthetic construct"
#| CDS 1..12
#| /gene="demo"
#| /translation="MAIV"
#|ORIGIN
#| 1 atggccattgta
#|//
text
}