///|
fn main {
  let t = @otio.read(
    "{\n    \"OTIO_SCHEMA\": \"Timeline.1\",\n    \"metadata\": {},\n    \"name\": \"Gap and clip\",\n    \"global_start_time\": null,\n    \"tracks\": {\n        \"OTIO_SCHEMA\": \"Stack.1\",\n        \"metadata\": {},\n        \"name\": \"tracks\",\n        \"source_range\": null,\n        \"effects\": [],\n        \"markers\": [],\n        \"enabled\": true,\n        \"color\": null,\n        \"children\": [\n            {\n                \"OTIO_SCHEMA\": \"Track.1\",\n                \"metadata\": {},\n                \"name\": \"V1\",\n                \"source_range\": null,\n                \"effects\": [],\n                \"markers\": [],\n                \"enabled\": true,\n                \"color\": null,\n                \"children\": [\n                    {\n                        \"OTIO_SCHEMA\": \"Gap.1\",\n                        \"metadata\": {},\n                        \"name\": \"\",\n                        \"source_range\": {\n                            \"OTIO_SCHEMA\": \"TimeRange.1\",\n                            \"duration\": {\n                                \"OTIO_SCHEMA\": \"RationalTime.1\",\n                                \"rate\": 24.0,\n                                \"value\": 48.0\n                            },\n                            \"start_time\": {\n                                \"OTIO_SCHEMA\": \"RationalTime.1\",\n                                \"rate\": 24.0,\n                                \"value\": 0.0\n                            }\n                        },\n                        \"effects\": [],\n                        \"markers\": [],\n                        \"enabled\": true,\n                        \"color\": null\n                    },\n                    {\n                        \"OTIO_SCHEMA\": \"Clip.2\",\n                        \"metadata\": {\n                            \"moontimeline\": {\n                                \"fixture\": true\n                            }\n                        },\n                        \"name\": \"Example clip\",\n                        \"source_range\": {\n                            \"OTIO_SCHEMA\": \"TimeRange.1\",\n                            \"duration\": {\n                                \"OTIO_SCHEMA\": \"RationalTime.1\",\n                                \"rate\": 24.0,\n                                \"value\": 120.0\n                            },\n                            \"start_time\": {\n                                \"OTIO_SCHEMA\": \"RationalTime.1\",\n                                \"rate\": 24.0,\n                                \"value\": 240.0\n                            }\n                        },\n                        \"effects\": [],\n                        \"markers\": [],\n                        \"enabled\": true,\n                        \"color\": null,\n                        \"media_references\": {\n                            \"DEFAULT_MEDIA\": {\n                                \"OTIO_SCHEMA\": \"ExternalReference.1\",\n                                \"metadata\": {},\n                                \"name\": \"\",\n                                \"available_range\": {\n                                    \"OTIO_SCHEMA\": \"TimeRange.1\",\n                                    \"duration\": {\n                                        \"OTIO_SCHEMA\": \"RationalTime.1\",\n                                        \"rate\": 24.0,\n                                        \"value\": 480.0\n                                    },\n                                    \"start_time\": {\n                                        \"OTIO_SCHEMA\": \"RationalTime.1\",\n                                        \"rate\": 24.0,\n                                        \"value\": 0.0\n                                    }\n                                },\n                                \"available_image_bounds\": null,\n                                \"target_url\": \"media/example.mov\"\n                            }\n                        },\n                        \"active_media_reference_key\": \"DEFAULT_MEDIA\"\n                    }\n                ],\n                \"kind\": \"Video\"\n            }\n        ]\n    }\n}\n",
  ).unwrap()
  let one = @time.RationalTime::new(1.0, 1.0).unwrap()
  let two = @time.RationalTime::new(2.0, 1.0).unwrap()
  println(@otio.write(@editing.split(t, 0, 1, two).unwrap()).unwrap())
  println(@otio.write(@editing.trim(t, 0, 1, one, two).unwrap()).unwrap())
  println(@otio.write(@editing.insert_gap(t, 0, 1, one).unwrap()).unwrap())
}