datasources 0.1.5

Async datasource interfaces, middleware, registry, and test doubles
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
use crate::connection::Connection;
use std::sync::Arc;

pub fn downcast_connection<T: Connection + 'static>(
    connection: Arc<dyn Connection>,
) -> Option<Arc<T>> {
    if connection.as_any().is::<T>() {
        Some(unsafe { Arc::from_raw(Arc::into_raw(connection) as *const T) })
    } else {
        None
    }
}