Crate libreda_oasis[][src]

Library for reading and writing OASIS files.

OASIS is a binary format for storing two-dimensional geometrical data as it is commonly used for silicon chip layouts. Its purpose is very similar to the older GDS2 format.

Examples

Read a layout from OASIS

use std::fs::File;
use libreda_oasis::OASISStreamReader;
// Import the `LayoutStreamReader` trait.
use libreda_db::prelude::{Layout, LayoutStreamReader};

let filename = "./tests/data/INVX1_no_compression.oas";
// Open the OASIS file for reading.
let mut f = File::open(filename).unwrap();

// Create an empty layout that will be populated by the OASIS reader.
let mut layout = Layout::new();

// Create a default OASIS reader and parse the data from the file.
let result = OASISStreamReader::default()
    .read_layout(&mut f, &mut layout);

// Assert that there was no error.
assert!(result.is_ok());

Write a layout to OASIS

use std::fs::File;
use libreda_oasis::OASISStreamWriter;
// Import the `LayoutStreamReader` trait.
use libreda_db::prelude::{Layout, LayoutStreamWriter};

// Create an empty layout.
let layout = Layout::new();

let mut f = File::create("./tests/data/empty_layout_out.oas").unwrap();

let writer = OASISStreamWriter::default();

// Write the (empty) layout to the file.
let write_result = writer.write_layout(&mut f, &layout);

// Assert that there was no error.
assert!(write_result.is_ok());

Re-exports

pub use libreda_db;

Structs

OASISStreamReader

Reader for the OASIS file format.

OASISStreamWriter

Writer for the OASIS file format.

OASISWriterConfig

Configuration for the output stream format.

Traits

LayoutStreamReader

Trait for reading a layout from a byte stream.

LayoutStreamWriter

Trait for writing a layout to a byte stream.