1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use error::*; use libflo::Libflo; use libflo_error::{ Result as FuncResult, WrapErr, WrapError }; use static_libflo::STATIC_LIBFLO; use std::any::Any; use std::sync::Arc; #[no_mangle] pub extern fn construct(libflo: &Any) -> FuncResult<()> { let libflo: Option<&Arc<Libflo>> = libflo.downcast_ref(); if let Some(libflo) = libflo { let libflo = libflo.clone(); STATIC_LIBFLO.set(libflo).wrap_err_to_err()?; } else { let err: Error = ErrorKind::ConstructEventNotPassedLibflo.into(); return err.wrap_error_to_err(); } Ok(()) }