/******************************************************************************* Copyright: Copyright (c) 2009-2016 dunnhumby Germany GmbH. All rights reserved. License: Boost Software License Version 1.0. See LICENSE_BOOST.txt for details. Alternatively, this file may be distributed under the terms of the Tango 3-Clause BSD License (see LICENSE_BSD.txt for details). *******************************************************************************/ module ocean.text.util.ClassName; import ocean.stdc.gnu.string; import ocean.meta.types.Qualifiers; istring classname ( const(Object) o ) { istring mod; return classname(o, mod); } istring classname ( const(Object) o, out istring mod ) { istring str = o.classinfo.name; const(void)* result = memrchr(str.ptr, '.', str.length); const(char)* lastdot = cast(const(char)*) result; if (lastdot) { size_t n = lastdot - str.ptr; mod = str[0 .. n]; return str[n + 1 .. $]; } else { return str; } }